8

どうすればよいかわからない正規表現の質問があります。先頭に任意の数の a があり、次に a の数が偶数の場合は単一の 0、a の数が奇数の場合は単一の 1 で構成されるすべての文字列に一致する必要があります。

偶数/奇数をどのように追跡できますか?

サンプル

  • aaa1
  • aaaa0
4

2 に答える 2

11

^(a(aa)*1|(aa)+0)$

また

^(?:a(?:aa)*1|(?:aa)+0)$キャプチャを使用している場合。

最初の部分:a(aa)*1は任意の奇数の a の後に 1 が続くもの(aa)+0と一致し、2 番目の部分: は任意の偶数の a の後に 0 が続くものと一致します。

正規表現でパターンのコンポーネントの一致数を追跡することはできません。彼らには記憶がありません。幸いなことに、この場合、その制限を回避できます。

于 2013-08-04T07:56:50.787 に答える
10

あなたが使用することができます:

^(?:aa)*(?:a1|0)$
于 2013-08-04T07:54:44.713 に答える