我希望你能帮助我,我正在研究如何制作正则表达式,现在我遇到了这个问题:
编写一个正则表达式,该正则表达式接受带有 0 和 1 的字符串,并且从右到左的位置为 5 为 1。
例如,接受 10000,因为它在从右到左的位置 5 上有一个 1,或者接受 010000、0010000 或 1110000。
我在想这样的东西:(0+1)*+1(0+1)(0+1)(0+1)(0+1)(0+1)(0+1)
您可以使用此正则表达式:
1[01]{4}$
如果要匹配完整输入,请使用:
^[01]*1[01]{4}$
在这里,1[01]{4}$
确保我们有 4 位数字的0
和1
在我们匹配1
从而1
从右到左排在第 5 位。
正则表达式演示
好吧 - 这样想吧。它需要是任意数量的 1 和 0,然后是 1,然后是 4 个 1 或 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}$