【问题标题】:other possible way of writing some regexp编写一些正则表达式的其他可能方式
【发布时间】:2018-08-12 12:37:27
【问题描述】:

我有如下的正则表达式:

f04((?!z).)*

要求:

1.)f04 从字面上匹配字符 f04(区分大小写)

2.) 断言下面的 Regex 不匹配,z 匹配字符 z 字面意思(区分大小写)

3.) . 匹配任何字符

还有什么其他可能的方式来编写这个具有与上述相同要求的特定正则表达式?

【问题讨论】:

    标签: regex regex-negation


    【解决方案1】:

    这是另一种选择:

    f04(.*?)(?=z|$)
    

    Demo

    此模式将匹配 f04 后跟任何内容,直到碰到第一个字母 z直到碰到整个字符串的末尾,如果 z 永远不会出现。 p>

    您当前的方法使用了缓和点,但两种模式的行为应该相似。

    【讨论】:

    • 你能帮我解决这个问题吗:stackoverflow.com/questions/51783196/…
    • 我只是试图做这样的事情 ^(f04ba)[^z]+?$ 而不是这个 f04((?!z).)* 以避免答案 z;它确实奏效了。这件事有没有给你任何暗示,为什么!在我的弹性搜索案例中,在正则表达式查询中没有给出任何结果?
    • @zubug55 是的,这意味着 Elastic Search 不支持环视。
    • 你知道我认为我找到了解决方案 -> stackoverflow.com/questions/38645755/… -> 所以我必须这样做 -> .*f04.*&~(.*z.*)跨度>
    猜你喜欢
    • 2013-02-10
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2012-09-10
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多