Python---正規表現
Python正規表現
正規表現は特殊な文字シーケンスであり、文字列がパターンに一致しているかどうかを簡単にチェックすることができます.reモジュールはPython言語にすべての正規表現機能を持たせる.正則はreモジュールを使用し、import reを使用して呼び出す必要がある. match;最初から一致するだけで、一致すると結果オブジェクトが返され、見つからない場合はNoneが返されます. search:任意の位置からマッチングすると、マッチングは結果オブジェクトに戻り、すべて単一のマッチング(見つかったら検索を停止します)です. findall:すべて一致し、結果に一致したすべてのリストを返しますが、空のリストが見つかりません. compile:作成された正規表現を作成し、作成された正規オブジェクトとコンテンツを別々に操作できる .
以上、compileを使用して正規表現オブジェクトを生成できます.仕事関数は次のように使用します.
正規表現構文
1文字の一致:[]:中央の任意の文字[abc]:abcの任意の文字[0-9]:任意の数字文字[a-zA-Z]:任意の文字[^0-9]:非数字文字(数字以外の文字)に一致[^...]:[]にない文字 . :’’’以外の任意の文字 d:数値文字[0-9] に相当D:数値以外の文字は[^0-9] に等しいw:一致字(数字、アルファベット、下線)漢字も を含む.W:非文字(w逆の内容) にマッチs:空白文字(、r、t、スペース) S:空白以外の文字(sの反対の内容) b:語境界(先頭、末尾、スペース、句読点)
回数制限前の1文字を修飾する回数*: が任意に発生+:少なくとも1回 ?:最大1回(1回またはなし) {m}:出現回数を指定 {m,n}:m<=回数<=n {m,}:少なくともm回 {,m}:最大m回
境界の定義^:指定された内容で始まる $:指定されたコンテンツの末尾 パケットマッチング 正則切断 正則置換
正規表現は特殊な文字シーケンスであり、文字列がパターンに一致しているかどうかを簡単にチェックすることができます.reモジュールはPython言語にすべての正規表現機能を持たせる.
import re
r=re.match('abc', 'abchadajabcadjlae')#
print(r.group())#
print(r.span())# , ,( , )
# :abc
(0, 3)
m= re.match('abc', 'hadajabccadjlae')#
print(r)
# :None
s= re.search('abc', 'hadajabccadjlae')
print(s.group())
print(s.span())
# :abc
(5, 8)
f = re.findall('cba','ahkjdcbasdkjalcbasakldjacba')
print(f)
# ;['cba', 'cba', 'cba']
以上、compileを使用して正規表現オブジェクトを生成できます.仕事関数は次のように使用します.
c=re.compile('cba')
f = c.findall('ahkjdcbasdkjalcbasakldjacba')
print(f)
# ;['cba', 'cba', 'cba']
正規表現構文
1文字の一致:
c=re.findall('\w','n3\\\!@#h ')
print(c)
# :['n', '3', 'h', ' ', ' '
c=re.findall('\d','sd2dsd4eds18d5d')
print(c)
# :['2', '4', '1', '8', '5']
回数制限前の1文字を修飾する回数
a=re.findall('\d+','sd2dsd4eds18d5d')
print(a)
# :['2', '4', '18', '5']
a=re.findall('\d{2,3}','sd2d4ed18d235dsd3467d12')
print(a)
# :['18', '235', '346', '12']
a=re.findall('\d{2,}','sd2d4ed18d235dsd3467d12')
print(a)
# :['18', '235', '3467', '12']
境界の定義
a=re.findall('^hello', 'asjdhelloaskd')
print(a)
# :[]
f = re.findall('world$', 'asjdhelloaskworld')
print(f)
# :['world']
c=re.compile('(\d+)([a-z]+)(\d+)')
s=c.search('hddh23hxhjja45hhj')
if s:
# 0: , , ()
print(s.group(0), s.span(0))# 23hxhjja45 (4, 14)
print(s.group(1), s.span(1))# 23 (4, 6)
print(s.group(2), s.span(2))# hxhjja (6, 12)
print(s.group(3), s.span(3))# 45 (12, 14)
#findall: , () , ()
a=re.findall('w(ab)sd','qwabsde')
print(a)# ['ab']
# ,
#
string = ' 1 2 3 '
c = re.compile(r'\d')#
ret=c.split(sting)
print(ret)
# :[' ', ' ', ' ', ' ']
#
print(re.split(r'\d',string))
s = 'how1are2you'
s2 = re.sub(r'\d', '+', s)
print(s2)
# ;how+are+you
# ,
def double(s): #
return str(int(s.group()) * 2)
# ,
s2 = re.sub(r'\d', double, s)
print(s2)
# :how2are4you