LoginSignup
29
26

More than 3 years have passed since last update.

正規表現でif文を書くとき

Last updated at Posted at 2015-07-20

よく忘れるのでメモ

部分一致で発見
左のパターンのどれかが右に当たればマッチ。
'|'をパターンの大外に書くとおかしくなる。
パターンに括弧を書くときは、エスケープしないとだめなはず
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

29
26
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
26