正規表現を使った文字列検索
python で作成した
dayrec
pcsv
pdata
の各プログラムでは、re.findall という正規表現で検索できる検索方法を使用しています。
そのため、検索キーワードに正規表現がしようできるようになりました。
正規表現で使用する特殊文字
| 特殊文字 | 説明 |
| . (ドット) | 任意の1文字 |
| ^ | 行頭 |
| $ | 行末 |
| * | 任意の文字0回以上繰り返し |
| + | 任意の文字1回以上繰り返し |
| ? | 任意の文字0回以上繰り返し |
| {n} | n回の繰り返し |
| {n,} | n回以上の繰り返し |
| {m,n} | m~n回の繰り返し |
[ ]角カッコで囲ったパターンを「文字クラス」とが言いますが [ ] 内のいずれかの文字に一致するかどうかを調べます。
| 特殊文字 | 説明 |
| [文字の並び] | 文字の並びのいずれかの文字 |
| [^文字の並び] | 文字の並び以外の文字 |
| パターン | 説明 |
| [abc] | abcのいずれか |
| [0-9] | 0~9のいずれか |
| [A-Z] | A~Zのいずれか |
| [A-Za-z] | A~Z, a~zのいずれか |
| [^0-9] | 0から9以外の文字 |
文字クラスの簡易表現
| 特殊文字 | 説明 |
| \s | 空白 |
| \S | 空白以外 |
| \d | 数字 |
| \D | 数字以外 |
| \w | 英数字、[A-Za-z0-9]と同じ |
| \W | 英数字以外 |
| \A | 文字列の先頭 |
| \Z | 文字列の末尾 |
グループと選択
| 特殊文字 | 説明 |
| ( ) | グループ化。ただし、当該プログラムではサポートしていません。 |
| | | いずれか(パイプライン) |
|その他
| 特殊文字 | 説明 |
| \b | 単語の境界 |
| \\ | \ |
正規表現を使用した検索の具体例
1.パイプ来を使ってOR 検索を行う
データ文= 今日は晴れたが後で曇ってきた
入力キーワード= 晴|曇
検索されたワード= 晴, 曇
2.ドット . を使って任意の代わりにする
データ文= 22年9月末時点で中国の金保有量は1948トンで、世界6位に順位を上げている。
入力キーワード= 中国.+順位
検出されたワード= 中国の金保有量は1948トンで、世界6位に順位
データ文= 高橋さんと高梁さんや渡辺氏と渡部氏は読みが同じ。
入力されたキーワード= 高.さん|渡.氏
検出されたワード= 高橋さん, 高梁さん, 渡辺氏, 渡部氏
3.特定の日付を検出する
データ文= 2022/11/02, 2022/11/04, 2022/11/08, 2022/11/10
入力されたキーワード= 2022/11/0[4-8]
検出されたワード= 2022/11/04, 2022/11/08
以上 2022/11/20記