我有一个正则表达式问题,我不知道该怎么做。 它必须匹配包含开头任意数量的a的所有字符串,然后如果a的数量为偶数则为单个0,或者如果a的数量为奇数则为单个1。
如何跟踪偶数/奇数?
样品
答案 0 :(得分:10)
^(a(aa)*1|(aa)+0)$
或
^(?:a(?:aa)*1|(?:aa)+0)$
如果你正在使用捕获。
第一部分:a(aa)*1
将匹配任意奇数的a后跟一个,第二部分:(aa)+0
将匹配任意偶数的a后跟零。
您无法跟踪正则表达式中模式组件的匹配数。他们没有记忆。幸运的是,在这种情况下你可以解决这个限制。
答案 1 :(得分:7)
您可以使用:
^(?:aa)*(?:a1|0)$