1. ホーム
  2. python

[解決済み] match nothing "の正規表現構文?

2023-01-10 13:42:51

質問

私は正規表現を多用するPythonのテンプレートエンジンを持っています。それは次のような連結を使用します。

re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" )

個々の部分文字列(regexp1、regexp2など)を変更することができますね。

何もマッチしない、小さくて軽い表現で、マッチしたくないテンプレートの内部で使用できるものはありますか?残念ながら、時々 '+' または '*' が正規表現アトムに追加されるので、空の文字列を使用することはできません。

どのように解決するのですか?

これは何もマッチしないはずです。

re.compile('$^')

つまり、regexp1、regexp2、regexp3を'$^'で置き換えると、一致するものを見つけることは不可能になります。マルチラインモードを使用していない限り。


いくつかのテストの後、私はより良い解決策を見つけました。

re.compile('a^')

これはマッチング不可能で、前の解決策より早く失敗します。a を他の文字に置き換えても、常にマッチングが不可能になります。