pythonの正規表現モジュールre
1、テキストのパターンを検索する
search()関数はモードとスキャンするテキストを入力として取り、このモードが見つかったらMatchオブジェクトを返し、見つからなかったらsearch()はNoneを返します
結果:
Found "this"
in "Does this text match the pattern?"
from 5 to 9 ("this")
2、式のコンパイル
reには、テキスト文字列としての正規表現を処理するためのモジュールレベルの関数が含まれていますが、プログラムが頻繁に使用する式では、これらの式をコンパイルするとより効率的になります.compile()関数は、式文字列をRegexObjectに変換します.
結果:
Text: 'Does this text match the pattern?'
Seeking "this"-> match!
Seeking "that"-> no match
3、多重照合
findall()関数は、入力中にモードと一致して重複しないすべてのサブ列を返します.
結果:
Found "ab"
Found "ab"
search()関数はモードとスキャンするテキストを入力として取り、このモードが見つかったらMatchオブジェクトを返し、見つからなかったらsearch()はNoneを返します
- #!/usr/bin/python
-
- import re
- pattern = 'this'
- text = 'Does this text match the pattern?'
- match = re.search(pattern, text)
- s = match.start()
- e = match.end()
-
- print 'Found "%s"
in "%s"
from %d to %d ("%s")' % \
- (match.re.pattern, match.string, s, e, text[s:e])
結果:
Found "this"
in "Does this text match the pattern?"
from 5 to 9 ("this")
2、式のコンパイル
reには、テキスト文字列としての正規表現を処理するためのモジュールレベルの関数が含まれていますが、プログラムが頻繁に使用する式では、これらの式をコンパイルするとより効率的になります.compile()関数は、式文字列をRegexObjectに変換します.
- #!/usr/bin/python
-
- import re
- regexes = [ re.compile(p)
- for p in ['this', 'that']
- ]
- text = 'Does this text match the pattern?'
- print 'Text: %r
' % text
- for regex in regexes:
- print 'Seeking "%s" ->' % regex.pattern,
- if regex.search(text):
- print 'match!'
- else:
- print 'no match'
結果:
Text: 'Does this text match the pattern?'
Seeking "this"-> match!
Seeking "that"-> no match
3、多重照合
findall()関数は、入力中にモードと一致して重複しないすべてのサブ列を返します.
- #!/usr/bin/python
-
- import re
-
- text = 'abbaaabbbbaaaaa'
- pattern = 'ab'
- for match in re.findall(pattern, text):
- print 'Found "%s"' % match
結果:
Found "ab"
Found "ab"