[python]正規表現

3540 ワード

文字クラス[]

[abc]
[]とのテキストの一致
a正規表現に一致する文字aがあるので一致する
beforeには正規表現に一致する文字bがあるので一致する
dudeは、正規表現に一致するabc文字が含まれているため、一致しません.
ハイフネーションはFrom-toと表すことができます
ex [a-c] =[abc], [0-5] = [012345]

Dot(.)

a.b
改行以外のすべての文字と一致
aabは、中間文字aがすべての文字を表す「.」を表す.レギュラー?ゲームと一致する
a 0 bは、中間文字0がすべての文字を表す「.」を表す.レギュラー?ゲームと一致する
abcとaとbの間には空き番号が1つあってもこの正規フォーマットが一致しないので、組み合わせません.

セミロボット(*)


ca*t
ct表示aを0回繰り返す
cat繰り返しark 0回以上(1回繰り返し)
caaatはaを0回以上繰り返すコーディネート(3回繰り返す)

繰り返し(+)


ca+t
ctはa,mを0回繰り返して不整合を示す
cat繰り返しark 1回以上(1回繰り返し)
caaatはaが1回以上繰り返すコーディネート(3回繰り返す)

繰り返し({m,n})


ca{2}t
catはarkを1回繰り返し、組み合わせません
caatはaを2回繰り返すコーディネートです
ca{2,5}t
catのaは1回だけ繰り返し、一致しません
caatはark 2回重ね合わせです
caaaatはaを5回繰り返すコーディネートです

繰り返し({m,n},?)


ab?c
abcはbを1回使用して組み合わせる
acはb 0回で組み合わせる
? == 表示法、例えば{0,1}

Pythonで正規表現をサポートするreモジュール

import re
p = re.compile('ab*')

match

import re

p = re.compile('[a-z]+')
m = p.match('python')
print(m)

>> <re.Match object; span=(0, 6), match='python'>
import re

p = re.compile('[a-z]+')
m = p.match('3 python')
print(m)

>> None

search

import re

p = re.compile('[a-z]+')
m = p.search('python')
print(m)

>> <re.Match o bject; span=(0, 6), match='python'>
import re

p = re.compile('[a-z]+')
m = p.search('python')
print(m)

>> <re.Match o bject; span=(2, 8), match='python'>