よく忘れるのでメモ
部分一致で発見
左のパターンのどれかが右に当たればマッチ。
'|'をパターンの大外に書くとおかしくなる。
パターンに括弧を書くときは、エスケープしないとだめなはず
perlと逆な感じで少しわかりにくい。
import re
if re.compile("福岡|神奈川|東京|千葉").search("東京都目黒区"):
print("Match!")
.searchの所の他のメソッド
match(str)
文字列の先頭がマッチするかどうかを判定し、マッチしたら MatchObject インスタンスを返し、マッチしなかったら None を返す
findall(str)
マッチする部分のすべてを MatchObject インスタンスのリストで返す。マッチしなければ空のリストを返す
finditer(str)
マッチする部分すべてを MatchObject インスタンスのイテレータで返す。マッチしなければ空のイテレータを返す
追記 下記は、いずれも1つマッチする
if "東京" in ['福岡','神奈川','東京','東京都','千葉']:
print('Match!')
if "東京" in '東京都品川区':
print('Match!')
perlの時
そういえば、こんな感じだった。
日本語の時は注意事項があった気がする... 忘れた。。
if ("Hello, world!" =~ /wor/) {
print("Match!\n");
}
参照 いろんなコードで紹介してあります。
https://hydrocul.github.io/wiki/programming_languages_diff/string/match.html