如何设置不匹配任何内容的正则表达式?

9

只是出于好奇。

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


3
在真正的正则语言中,空集是一种正则表达式。参见:非正则语言的模式和形式化语言理论。 - Oliver Charlesworth
我猜这和有NULLundef或者None是一样的:有时候你想要一个已编译的正则表达式作为起始值,但它永远不匹配任何东西。 - mvp
@mvp 没错!(我写这个是为了避免限制) - Gill Bates
@GillBates,我已经将你关于闭包的评论从问题中删除了。它应该是一条评论。也许你是对的,它不应该被关闭,但你已经得到了答案,所以这并不重要,对吧? - Mischa
@Mischa:这种态度相当奇怪。如果您认为问题很清楚,有好的答案存在,为什么要将其关闭为“不是一个真正的问题”?虽然现在对这个用户来说可能无关紧要,但对于以后会阅读这个问题的其他用户来说,这是非常重要的。 - mvp
@mvp,一旦您投票关闭,就无法撤消。我已经投票关闭了,但后来当我阅读所有评论和答案时,我认为我不应该这样做。 - Mischa
3个回答

15

可以。

以下是几个例子。

.^
$.
(?!)

当然,这样的表达式有无限多种。


3
@翼龙 当然。示例:.^..^...^,等等。 - Kendall Frey
关于Javascript / PHP示例的性能:https://dev59.com/53I-5IYBdhLWcg3wsKr9#70670013 - MMMahdy-PAPION

2

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

$x^

我非常确定它将匹配一个空字符串。 - Kendall Frey
好的,我尝试了Perl风格,但它不匹配空字符串。 - mvp
让我们在聊天室里继续这个讨论 - Kendall Frey
@GillBates 哇,这确实很奇怪。你使用的是哪个引擎?.NET匹配,但JavaScript不匹配。 - Kendall Frey
@吉尔·贝茨 - 这是关于'$^'版本的事情。 - Gill Bates

0

关于/^$x/.怎么样?当我在Ruby中尝试时,它似乎有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接