正则表达式允许序列在中间结束

时间:2017-02-06 23:11:09

标签: regex

我试图创建一个匹配任何只包含' 0'的字符串的正则表达式。和' 1' char,只要它不包含特定的序列" 00"或" 010"。

我的想法是这样的 1 *(011 +)*

但问题出现了,如果字符串以0结尾,如1110,那么它应该是有效的。使用我的正则表达式,任何0必须后跟两个或更多,但我无法弄清楚如何使这个特定的例外。

我需要一个正则表达式,强制任何0后跟两个或多个OR结束。这将允许以0和01结尾的序列,此外明显的"以1"结束。例如,在" 111111"中,非主流序列不存在。

我怎样才能切断短片"正则表达式中的条件,允许它根据我的规则继续,或者在那里结束?

1 个答案:

答案 0 :(得分:1)

您可以像这样修复正则表达式:

1*(011+)*(01?)?

在末尾添加一个匹配不完整零组的(可选)组,即001