多くの場合、ユーザー入力が特定の要件(メールの照合、電話番号の照合など)を満たしているかどうかを照合する必要があります。または、要件に応じて特定の要件を持つファイルを除外する必要があります(特定の日の画像ファイルの検索など)。さまざまなファイルから)この時点で、要件を満たす文字列に一致する仕様を手動で定義する必要があります。これは、今日説明する正規表現です。
この記事では、定期的なマッチングにPythonのreパッケージを使用しています
import re
- 直接一致
re.match('hello','hello').group() # match 前一个引号内为规则,后一个引号内为待匹配对象
出力は次のとおりです。
'hello'
しかし、これには欠点もあります
re.match('hello','hello,world').group()
出力はまだです:
'hello'
つまり、前の文字列の末尾にのみ一致し、後で気にすることはありません。
もちろん、一致しない場合は次のとおりです。
re.match("hello","holle,world").group()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-7f1d9f73b36d> in <module>
----> 1 re.match("hello","holle,world").group()
AttributeError: 'NoneType' object has no attribute 'group'
- 1文字のマッチングルール
キャラクター | 特徴 |
---|---|
。 | 任意の文字に一致 |
[] | []にリストされている文字と一致します |
\ d | 一致番号、つまり0〜9 |
\ D | 数字以外に一致 |
\ s | マッチスペース、タブキー |
\ S | スペース以外のタブキーに一致 |
\ w | 単語の文字、つまり0〜9、az、AZ、_に一致します |
\ W | 単語以外の文字に一致する |
- 複数の文字に一致する
キャラクター | 特徴 |
---|---|
* | 前の文字に0回または無制限に一致します。これはオプションです |
+ | 前の文字を1回または無制限に、つまり少なくとも1回一致させます |
? | 前の文字に1回または0回、つまり最大で1回一致します |
{m} | 前の文字とm回一致する |
{m、n} | 前の文字とmn回一致します |
- 開始と終了を一致させる
シンボル | 特徴 |
---|---|
^ | 試合開始 |
$ | 試合終了 |
- マッチグループ化
シンボル | 特徴 |
---|---|
| | 左右の式のいずれかに一致します |
() | 括弧内の文字をグループとして使用します |