我希望你能帮助我,我正在研究如何制作正则表达式,现在我遇到了这个问题:
编写一个正则表达式,接受0和1的字符串,并且从右到左的位置5上有1。
e.g。接受10000是因为它从右到左在位置5上有1或者接受010000,0010000或1110000。
我想的是:(0 + 1)* + 1(0 + 1)(0 + 1)(0 + 1)(0 + 1)(0 + 1)
答案 0 :(得分:0)
您可以使用此正则表达式:
1[01]{4}$
如果您想匹配完整输入,请使用:
^[01]*1[01]{4}$
此处1[01]{4}$
确保我们在匹配0
之后有4位1
和1
,从而使1
从右到左位于第5位。
答案 1 :(得分:0)
嗯 - 这样想吧。它需要尽可能多的1和0,然后是1,然后是4个或0。
所以:
my_regex =
"^[01]*" + // Starts with One or zero, zero or more times
"1" + // Followed by a one
"[01]{4}$" // Followed by four things, which could be either zero or one, before ending.
你的(0 + 1)语法看起来很陌生。我正在使用字符类来指定[01]的东西,但你可以在它们的位置使用(0 | 1),这是你的尝试看起来更像。
完整的事情是^[01]*1[01]{4}$