正则表达式从右到左匹配位置



我希望你能帮助我,我正在研究如何制作正则表达式,现在我遇到了这个问题:

编写一个正则表达式,该正则表达式接受带有 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 位数字的01在我们匹配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}$

最新更新