私にはわからない正規表現の質問があります。 最初に任意の数のaで構成されるすべての文字列に一致する必要があり、aの数が偶数の場合は1つの0、aの数が奇数の場合は1つのいずれか1つに一致する必要があります。正規表現奇数/偶数量
偶数/奇数の追跡方法を教えてください。
サンプル
- AAA1
- aaaa0あなたが使用することができ
私にはわからない正規表現の質問があります。 最初に任意の数のaで構成されるすべての文字列に一致する必要があり、aの数が偶数の場合は1つの0、aの数が奇数の場合は1つのいずれか1つに一致する必要があります。正規表現奇数/偶数量
偶数/奇数の追跡方法を教えてください。
サンプル
^(a(aa)*1|(aa)+0)$
または
^(?:a(?:aa)*1|(?:aa)+0)$
キャプチャを使用している場合。
最初の部分:a(aa)*1
は、任意のaの後に1を付け、2番目の部分:(aa)+0
は、任意のaの後に0を付けます。
正規表現でパターンのコンポーネントの一致数を追跡することはできません。彼らには記憶がありません。幸いにも、あなたはこの場合にその限界を乗り越えることができます。
答えをありがとう、説明できますか?:それを知っていますか? 0または1を意味しますが、一緒に意味するものは何ですか? –
(?:pattern)は、Javaの(pattern)と同等のものではありません。マッチャー内のグループをチェックしていない場合、それらのパターンはどちらも同等です。この文脈では、0または1を意味するわけではありません。http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html –
:
^(?:aa)*(?:a1|0)$
試しましたか? –
いくつかのサンプル文字列を貼り付けます。 –