どうすればよいかわからない正規表現の質問があります。先頭に任意の数の a があり、次に a の数が偶数の場合は単一の 0、a の数が奇数の場合は単一の 1 で構成されるすべての文字列に一致する必要があります。
偶数/奇数をどのように追跡できますか?
サンプル
- aaa1
- aaaa0
^(a(aa)*1|(aa)+0)$
また
^(?:a(?:aa)*1|(?:aa)+0)$
キャプチャを使用している場合。
最初の部分:a(aa)*1
は任意の奇数の a の後に 1 が続くもの(aa)+0
と一致し、2 番目の部分: は任意の偶数の a の後に 0 が続くものと一致します。
正規表現でパターンのコンポーネントの一致数を追跡することはできません。彼らには記憶がありません。幸いなことに、この場合、その制限を回避できます。
あなたが使用することができます:
^(?:aa)*(?:a1|0)$