【问题标题】:How to set up REGEX that doesn't match anything?如何设置不匹配的正则表达式?
【发布时间】:2012-12-16 10:26:10
【问题描述】:

只是为了好奇。

是否可以创建一个不匹配任何字符串(包括空字符串)的正则表达式?

【问题讨论】:

  • 对于true regular languages,从技术上讲,空集是regular expression
  • 我猜这与NULLundefNone 相同:有时您希望将正则表达式编译为从不匹配任何内容的起始值
  • @mvp 没错! (我写这个是为了避免限制)
  • @GillBates,我从问题中删除了您关于关闭的评论。应该是评论。你可能是对的,它不应该被关闭,但你得到了答案,所以这并不重要,不是吗?
  • @Mischa:这是相当奇怪的态度。如果您认为它不应该关闭,问题很明确,存在很好的答案,为什么您将其关闭为not a real question?如果现在对这个用户来说可能无关紧要,但对稍后会阅读这个问题的其他用户来说很重要。

标签: regex regex-negation


【解决方案1】:

/^$x/. 怎么样?当我用 ruby​​ 尝试它时,它似乎可以工作。

【讨论】:

    【解决方案2】:

    这个正则表达式永远不应该匹配任何东西(前提是你不使用单行或多行修饰符):

    $x^
    

    【讨论】:

    • 我很确定它会匹配一个空字符串。
    • 嗯,我试过 Perl 的味道,它与空字符串不匹配
    • @GillBates 哇,这当然很奇怪。你用的是哪个引擎? .NET 匹配,但 JavaScript 不匹配。
    • @Gill Bates - 关于“$^”版本
    【解决方案3】:

    是的。

    这里有几个例子。

    .^
    $.
    (?!)
    

    这样的表达方式自然有无数种。

    【讨论】:

    • @Pterodactyl 当然可以。示例:.^..^...^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2021-10-29
    相关资源
    最近更新 更多