拒绝所有输入的正则表达式?

时间:2020-03-05 18:53:20  来源:igfitidea点击:

是否可以构造一个拒绝所有输入字符串的正则表达式?

解决方案

回答

编辑:
[^ \ n \ r \ w \ s]

回答

你为什么还要那个?如果陈述能奏效,这会很简单吗?类似于以下内容:

if ( inputString != "" )
  doSomething ()

回答

大概是这样的:

[^\w\W]

\ w文字字符(字母,数字等)
\ W与\ w相反

[^ \ w \ W]应该总是失败,因为任何字符都应该属于字符类\ w或者\ W之一

另一个摘要:

$.^

$断言在字符串末尾的位置
^在行首的断言位置
。任何字符

(?#it's just a comment inside of empty regex)

空的前行/后行应该起作用:

(?<!)

回答

[^ \ x00- \ xFF]

回答

出色地,

我不确定我是否理解,因为我一直想着一种正则表达式来匹配字符串。我想说的是,最好的方法是不使用正则表达式。

但是,我们也可以使用匹配空行(例如^ $$)或者不匹配单词/空格(例如^ \ w \ s)的正则表达式...

希望能帮助到你!

回答

(?=not)possible

?=是一个正向的前瞻。并非所有的regexp版本都支持它们,但许多版本中不支持它们。

表达式将查找" not",然后查找从相同位置开始的" possible"(因为提前行不会在字符串中向前移动)。

回答

对我来说,这听起来像是我们以错误的方式来攻击问题,到底是什么
我们要解决吗?

我们可以执行一个正则表达式,以捕获所有内容并取反结果。

例如在javascript中:

if (! str.match( /./ ))

但是那你可以做

if (!foo)

相反,就像@ [jan-hani]所说的。

如果我们希望将这样的正则表达式嵌入另一个正则表达式中,则表示
可能正在寻找$或者^,或者使用诸如@ [henrik-n]之类的前瞻。

但是正如我所说,这看起来像一个"我认为我需要x,但我真正需要的是y"问题。

回答

这取决于我们所说的"正则表达式"。我们是指特定编程语言或者库中的正则表达式吗?在这种情况下,答案可能是肯定的,我们可以参考上述任何答复。

如果我们说的是计算机科学课中教的正则表达式,那么答案是否定的。每个正则表达式都匹配一个字符串。它可以是空字符串,但始终匹配某些内容。

无论如何,我建议我们编辑问题的标题,以缩小我们要表达的正则表达式的范围。

回答

为什么可能需要这种情况的一个示例是,当我们想使用正则表达式过滤某些输入,并将正则表达式作为参数传递给函数时。

本着函数式编程的精神,为了实现代数完整性,我们可能需要一些琐碎的主正则表达式,例如"一切都允许"和"一切都不允许"。

回答

[^] +应该做到这一点。

为了回答aku对此的评论,我使用了在线正则表达式测试器(http://www.regextester.com/)对其进行了测试,因此假定它可以与JavaScript一起使用。我不得不承认没有在"真实"代码中对其进行测试。 ;)

回答

拒绝所有输入的最佳标准正则表达式(即无前瞻或者后向引用)(在上述@aku之后)

.^

$.

这些矛盾很明显:"字符串开头有一个字符"和"字符串结尾有一个字符"。

注意:某些正则表达式实现可能会拒绝这些格式不正确的模式(很容易地检查^出现在模式的开头,而$$结束在...的正则表达式中),我检查过的少数几个接受了它们。这些也不能在允许^$匹配换行符的实现中使用。