因为我们可以开发正则表达式,比如字符串以01结尾{0,1} 喜欢(0 + 1)* 01
所以这种方式超过{0,1}我希望我的问题的答案是0和1的正则表达式都是奇数
1和0的任何组合都应该有效。
答案 0 :(得分:1)
首先使用有限状态机解决此问题,然后将FSM转换为正则表达式(这总是可行的)。您可以构造一个具有四种状态的FSM:偶数,奇数,1甚至0和奇数,0甚至1和奇数。以“均匀”状态开始并以明显的方式移动; “两个奇怪的”是唯一的接受国。
答案 1 :(得分:0)
一般"奇怪"计算" x"是(([^x]*x){2})*[^x]*x[^x]*
。使用这种表达式使用两个预测来断言字符1和0都存在奇数次:
^(?=(0*10*1)*0*10*$)(?=(1*01*0)*1*01*$).*
请参阅live demo。
正则表达式基本上是2 向前看,其形式为(?=...)
(其中...
是表达式)和断言(不消耗) )以下输入匹配表达式。因为它不消耗输入,所以它不会移动指针,所以你可以在同一点有多个前瞻。