【问题标题】:Regex allow sequence to end right in the middle正则表达式允许序列在中间结束
【发布时间】:2017-02-07 07:29:51
【问题描述】:

我正在尝试创建一个正则表达式,它可以匹配任何仅包含“0”和“1”字符的字符串,只要它不包含特定序列“00”或“010”。

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

但是出现了一个问题,如果字符串以 0 结尾,比如 1110,那么它应该是有效的。使用我的正则表达式,任何 0 必须后跟两个或多个,但我不知道如何制作这个特定的例外。

我需要一个正则表达式来强制任何 0 后跟两个或多个或结束。这将允许以 0 和 01 结尾的序列,除了明显的“以 1 结尾”的情况,如在“111111”中,未经授权的序列不存在。

我怎样才能“切断”正则表达式中的一个条件,让它按照我的规则继续下去,或者就在那里结束?

【问题讨论】:

标签: regex


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多