概要
Pythonで「先読みと後読みを使ったパターンの記述」の動作を確認してみました。
以下のページを参考にしました。
実装
以下のファイルを作成しました。
sample.py
import re
pattern = re.compile(r'smart(?=phone)')
print(bool(pattern.search('smart')))
print(bool(pattern.search('smartphone')))
print(bool(pattern.search('smartwatch')))
result = pattern.search('smartphone')
print(result.group(0))
import re
pattern = re.compile(r'smart(?!phone)')
print(bool(pattern.search('smart')))
print(bool(pattern.search('smartphone')))
print(bool(pattern.search('smartwatch')))
result = pattern.search('smartwatch')
print(result.group(0))
import re
pattern = re.compile(r'(?<=digital)camera')
print(bool(pattern.search('camera')))
print(bool(pattern.search('digitalcamera')))
print(bool(pattern.search('analogcamera')))
result = pattern.search('digitalcamera')
print(result.group(0))
import re
pattern = re.compile(r'(?<!digital)camera')
print(bool(pattern.search('camera')))
print(bool(pattern.search('digitalcamera')))
print(bool(pattern.search('analogcamera')))
result = pattern.search('analogcamera')
print(result.group(0))
以下のコマンドを実行しました。
$ python3 sample.py
False
True
False
smart
True
False
True
smart
False
True
False
camera
True
False
True
camera
まとめ
何かの役に立てばと。