pythonプログラミングベース---------正規表現

3307 ワード

皆さん、お久しぶりです.最近ずっと用事があって、ブログも更新していません.はい、みんながたくさんのデータの中でいくつかの文字を探すのに頭が痛いと信じています.次の方法は多くの人の悩みを解決できると信じています.では、正規表現の強さを理解しましょう.
1.正規表現の意味
正規表現は特殊な文字シーケンスであり、文字列がパターンに一致しているかどうかを簡単にチェックすることができます.
Pythonは1.5バージョンからreモジュールを追加し、Perlスタイルの正規表現モードを提供しています.
reモジュールはPython言語にすべての正規表現機能を持たせる.
compile関数は、モード文字列とオプションのフラグパラメータに基づいて正規表現オブジェクトを生成します.このオブジェクトには、正規表現の一致と置換のための一連の方法があります.
reモジュールはまた、これらの方法の機能と完全に一致する関数を提供し、これらの関数は、モード文字列を最初のパラメータとして使用します.
2.re.compile関数
compile関数は、正規表現をコンパイルし、match()とsearch()の2つの関数で使用できる正規表現(Pattern)オブジェクトを生成するために使用されます.
構文は次のとおりです.
re.compile(pattern[, flags])

パラメータの説明:
pattern_obj1=re.compile('(\d+(\w+))')
#         ,      
# compile:  

 
3.re.match関数
re.matchは文字列の開始位置からモードをマッチングしようとし、開始位置マッチングが成功しなければmatch()はnoneを返します.
関数構文:
re.match(pattern, string, flags=0)

関数パラメータの説明:
パラメータ
説明
pattern
一致する正規表現
string
一致する文字列.
flags
大文字と小文字を区別するかどうか、複数行のマッチングなど、正規表現のマッチング方法を制御するフラグビット.参照:正規表現修飾子-オプションフラグ
一致成功re.matchメソッドは一致するオブジェクトを返します.そうしないとNoneを返します.
group(num)またはgroups()マッチングオブジェクト関数を使用してマッチング式を取得できます.
オブジェクトの照合方法
説明
group(num=0)
一致する式全体の文字列、group()は一度に複数のグループ番号を入力できます.この場合、それらのグループに対応する値を含むメタグループが返されます.
groups()
すべてのグループ文字列を含むメタグループを返します.1から含まれるグループ番号までです.
例:
 
pattern_obj1=re.compile('(\d+(\w+))')
#         ,      
# compile:  
# match   

res1 = re.match(pattern_obj1,'12345abcd100 ')
#   res1    
if res1:
    print(res1)
    print('    %s | %s'%(res1.group(1),res1.group(2)))
else:
    print('     ')

 
4.re.search関数
re.search関数は文字列全体をマッチングし、マッチングに成功した最初の値を返します.
関数構文:
re.search(pattern, string, flags=0)

関数パラメータの説明:
パラメータ
説明
pattern
一致する正規表現
string
一致する文字列.
flags
大文字と小文字を区別するかどうか、複数行のマッチングなど、正規表現のマッチング方法を制御するフラグビット.参照:正規表現修飾子-オプションフラグ
例:
 
import re
pattern = re.compile('my')
# match         
#        ,      match  ,        None
res1 = re.match(pattern,'mydsdasdshop')
print(res1)
# search  
# search         
#           ,     ,       
res2 = re.search(pattern,'asdadmyshopmy')
print(res2)
# findall:         ,       
res3 = re.findall(pattern,'sdsadmysdsmy')
print(res3)

 
5.re.sub関数
re.sub関数はマッチングした値を置き換えるために使用されます.マッチングに成功した値を所望の値に置き換えることです.
構文の説明:
re.sub(pattern, repl, string, count=0)

パラメータの説明:
  • pattern:正規のモード文字列.
  • repl:置換された文字列は、関数であってもよい.
  • string:置換する元の文字列を検索します.
  • count:パターンマッチング後に置換される最大回数、デフォルト0はすべてのマッチングを置換することを示します.

  •  
  • pattern:文字列形式の正規表現
  • flagsはオプションで、大文字と小文字を無視したり、マルチラインモードなどのマッチングモードを表します.具体的なパラメータは:
  • です.
  • re.I大文字小文字を無視
  • re.Lは特殊文字セットw,W,b,B,s,Sが現在の環境に依存する
  • を表す.
  • re.Mマルチラインモード
  • re.Sは'.'改行文字を含む任意の文字('.'改行文字を除く)
  • .
  • re.Uは特殊文字セットw,W,b,B,d,D,s,SがUnicode文字属性データベース
  • に依存することを示す
  • re.X可読性を高めるために、スペースおよび'#'の後の注釈
  • を無視する

    例:
    pattern3 = re.compile('
    ') print(re.sub(pattern3,'-','a
    b
    c'))