目次
| メソッド | findallメソッド |
| AB | 文字列を指定 |
| [AB] | 文字をORで指定 |
| [^A] | 文字を否定で指定 |
| [A-C] | 文字を範囲で指定 |
| c{2} | 連続する文字を指定 |
| c{2,} | 連続する文字(個以上)を指定 |
| c+ | 1回以上出現している文字を指定 |
| 大文字小文字を無視する | |
| パターン | 正規表現のパターン |
(確認環境:Python 3)
findallメソッド
| re.findall(pattern, string, flags=0) |
- re.findallは、特定のパターンに一致する部分をすべて返します。←re.search()との違い
- 1つめの引数は、正規表現です。
- 2つめの引数は、対象の文字列です。
- 戻り値は、リスト(配列)です。
- 対象がヒットしない場合は空のリスト(配列)を返します。
- 戻り値があるかはif文で判定できます。
a= re.findall(pattern, string)
if a:
処理 - 最初にimport reの記述が必要です。
文字列を指定
import re
a = "BC"
b = re.findall(a,'ABCABC')
if b:
print(b[0]) # BC
print(b[1]) # BC
3行目は、文字列「BC」を指定しています。
5行目のfindallメソッドの引数にはBCが2つあります。
文字をORで指定
import re
a = "[AE]"
b = re.findall(a,'ABCABC')
if b:
print(b[0]) # A
print(b[1]) # A
3行目は、「A」または「E」を指定しています。
文字を否定で指定
import re
a = "[^A]"
b = re.findall(a,'ZZZ')
if b:
print(b[0]) # Z
print(b[1]) # Z
print(b[2]) # Z
3行目は、「A」以外の文字を指定しています。
文字を範囲で指定
import re
a = "[A-C]"
b = re.findall(a,'ZZCZB')
if b:
print(b[0]) # C
print(b[1]) # B
3行目は、「A」または「B」または「C」の文字を指定しています。
連続する文字を指定
import re
a = "c{2}"
b = re.findall(a,'acccbcc')
if b:
print(b[0]) # cc
print(b[1]) # cc
3行目は、正規表現で「c」が2回連続することを指定しています。
連続する文字(個以上)を指定
import re
a = "c{2,}"
b = re.findall(a,'acccbcc')
if b:
print(b[0]) # ccc
print(b[1]) # cc
3行目は、正規表現で「c」が2回以上連続することを指定しています。
1回以上出現している文字を指定
import re
a = "c+"
b = re.findall(a,'acccbcc')
if b:
print(b[0]) # ccc
print(b[1]) # cc
3行目は、正規表現で「c」が1回以上出現しているを指定しています。
大文字小文字を無視する
import re
a = "c+"
b = re.findall(a,'ACBc',re.IGNORECASE)
if b:
print(b[0]) # C
print(b[1]) # c
3行目は、正規表現で「c」が1回以上出現しているを指定しています。
5行目は、findallメソッドの3つめの引数にre.IGNORECASEを指定しています。大文字小文字を無視します。
関連の記事
