1. ホーム
  2. regex

[解決済み] 特定の文字列を含まない正規表現[重複]について

2023-07-15 01:11:18

質問

このようなものがあります。

aabbabcaabda

で包まれた最小グループを選択するために a 私はこの /a([^a]*)a/ で、これはうまく動作します。

でラップされたグループには問題があります。 aa のようなものが必要です。 /aa([^aa]*)aa/ のようなものが必要ですが、これはうまくいきません。 /aa([^a]*)aa/ の最初の出現で終わってしまうからです。 a で終わってしまうので、それは避けたいところです。

一般的に、何か方法はありますか? を含まない文字列 と同じように と言うことができます。 は文字を含まない [^a] ?

簡単に言うと、必要なのは aa の後にシーケンス以外の文字が続く場合 aa で終わり、さらに aa

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

一般に、正規表現を書くのは面倒です。 ではなく を書くのは面倒です。NFAは定義するのは簡単ですが、それを正規表現に落とし込むのです。猫」を含まないものを表す式は、約80文字の長さでした。

編集:今終わったけど、そうなんだ。

aa([^a] | a[^a])aa

ここで は非常に簡単なチュートリアルです。以前は素晴らしいものを見つけたのですが、もう見ることができません。