正規表現とは、Pythonのみならず、ほかの言語(Java,C,PHP,Javascript)などにも出てくる概念です。
正規表現はある特定の文字列(パターン)が、検索対象の文字列に出現するかどうかを判定します。検索パターンが検索対象の一部だけでも一致すればOKである。
[^]は文字列の先頭を表す。
[$]は文字列の行末を表す。
# -*- coding: utf-8 -*- #正規表現のreモジュールをインポートする。 import re pattern = ["ABA", "^ABA", "ABA$","^ABA$"]#見つけ出したいパターンの文字列 search = ["ABA", "ABAA", "ABAAA","AABA","AAABA"]#検索対象の文字列 #見つけ出したいパターンの文字列でループを回す。 for i in pattern: print("*******") p = re.compile(i)#正規表現を使える等にパターン文字列をコンパイルする。 for j in search:#検索対象の文字列の集合をループで回す。 result = p.search(j)#検索対象に検索パターンが一致するかチェックする。検索パターンが検索対象の一部だけでも一致すればOKである。 if result is not None: r = "OK" #一致していればOKとする。 else: r = "NG" #一致してなければNGとする。 massege = "(Pattern)" + i + "(search)" + j + "(match)" + r print(massege)
(実行結果)
*******
(Pattern)ABA(search)ABA(match)OK
(Pattern)ABA(search)ABAA(match)OK
(Pattern)ABA(search)ABAAA(match)OK
(Pattern)ABA(search)AABA(match)OK
(Pattern)ABA(search)AAABA(match)OK
*******
(Pattern)^ABA(search)ABA(match)OK
(Pattern)^ABA(search)ABAA(match)OK
(Pattern)^ABA(search)ABAAA(match)OK
(Pattern)^ABA(search)AABA(match)NG
(Pattern)^ABA(search)AAABA(match)NG
*******
(Pattern)ABA$(search)ABA(match)OK
(Pattern)ABA$(search)ABAA(match)NG
(Pattern)ABA$(search)ABAAA(match)NG
(Pattern)ABA$(search)AABA(match)OK
(Pattern)ABA$(search)AAABA(match)OK
*******
(Pattern)^ABA$(search)ABA(match)OK
(Pattern)^ABA$(search)ABAA(match)NG
(Pattern)^ABA$(search)ABAAA(match)NG
(Pattern)^ABA$(search)AABA(match)NG
(Pattern)^ABA$(search)AAABA(match)NG