方法.REモジュールを見つける:
1.findall整合素子それぞれがすべてのリストであります
再インポート
RETは( '\ + D'、 '21313 ASDルバニ7')#正規表現の文字列をre.findallを=フラグでは、一致する
#1 RET = re.findall( '\のD'、「第七ASDルバニ21313「)旗の中の文字列を一致させる#正規表現、
#印刷(RET)
結果は、直接ではなく、むしろ可変まで2.searchだけ、右にこの変数グループの結果を得るための方法を第1の左と一致します
インポート再
RET = re.search(' \ + D '、' ASDルバニ7 21313 ' )
プリント(RET) #1 陽性結果の一致であるメモリアドレス、
印刷(ret.group()) #ret.groupによって( )実際の結果を得るために
2.1がある場合に一致、Noneを返しますが、グループを使用して文句を言うんだろう
= re.searchのRET(' \ + D '、' ASDルバニVII ' )
プリント(ret.group())
2.2だから今回は、私がどのような形式呼びたいです
= re.searchのRET(' \ + D '、' ASDルバニVII ' )
IF RET:
プリント(ret.group())
3.matchスクラッチ一致、正規表現検索の同等プラス^
= re.match RET(' \ + D '、' ルバニVIIは21313 1233asd ' )
プリント(RET)
II。拡張文字列処理
1.split--カッティング
S = " ルバニ|チェン| | '
印刷(s.split(' | ' ))
の = ' luban34cheng21an89 '
プリント(re.split(' \ dの+ "、S))
2.sub--交換
K = re.sub(' \のD + '、' H '、' luban34cheng21an89 '、1 )
プリンタ(右)
3.subnは、ニューロン前駆を返す第二要素の数が交換可能である返します
K = re.subn(' \のD + '、' H '、' luban34cheng21an89 ' )
プリンタ(右)
高度な3 .REモジュール
あなたは、複数の使用の過程では、バイトコードにコンパイルされた正規表現をコンパイルし、問題を解決するために、複数のないコンパイルを正規表現を使用し、時間を節約1.compile
= re.compileのRET(' \ + D ')#完全コンパイル
印刷(RET)
RES = ret.findall(' luban34cheng21an89 ' )
プリント(RES)
RES = ret.search(' 21313ルバニVIIを1233asd ' )
印刷(RES .group())
あなたが問題を解決するために正規表現を使用する省スペース2.finditer
ret = re.finditer('\d+','1233asd鲁班七号21313')
for i in ret:
print(i.group())
四.总结
findall 返回列表,找所有的匹配项
search 匹配就返回一个变量,通过group取匹配到的第一值,不匹配就返回None,group会报错
match 相当于search的正则表达式中加了一个'^'
split 返回列表,按照正则规则切割,默认匹配到的内容会被切掉
sub/subn 替换,按照正则规则去寻找要被替换的内容,subn返回元祖,第二个值是替换的次数
compile 编译一个正则表达式,用这个结果去search,match,fildall,finditer 能够节省时间
finditer 返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值 能够节省内存