正则表达式奇数/偶数

Mat*_*t.S 7 java regex

我有一个正则表达式的问题,我不知道该怎么做.它必须匹配包含开头任意数量的a的所有字符串,然后如果a的数量为偶数则为单个0,或者如果a的数量为奇数则为单个1.

你怎么能跟踪偶数/奇数?

样品

  • AAA1
  • aaaa0

Chr*_*ode 10

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

要么

^(?:a(?:aa)*1|(?:aa)+0)$ 如果你正在使用捕获.

第一部分:a(aa)*1将匹配任何奇数的a后跟一个,第二部分:(aa)+0将匹配任何偶数的a后跟零.

您无法跟踪正则表达式中模式组件的匹配数.他们没有记忆.幸运的是,在这种情况下你可以绕过这个限制.


Qta*_*tax 9

你可以使用:

^(?:aa)*(?:a1|0)$
Run Code Online (Sandbox Code Playgroud)