正则表达式匹配任何内容

31

我知道这似乎有些冗余,但我想要一个可以匹配任何内容的正则表达式。

目前我们正在使用^*$,但无论文本是什么,它似乎都无法匹配。

我会手动检查是否没有文本,但我们使用的测试视图始终使用正则表达式进行验证。然而,有时我们需要使用正则表达式来验证任何东西。即不管文本框中有什么内容,都可以。

实际上我并不制作正则表达式,而且我对它们是一个完全的初学者。


这个回答解决了你的问题吗?正则表达式-匹配任何内容 - Pound Hash
4个回答

42
正则表达式 .* 匹配任何字符(包括空字符串,正如 Junuxx 指出的那样)。

18
什么也没有,似乎他不想要。所以,“.+”。 - Junuxx
检查是否为空并不太重要,因为我在正则表达式之外进行了检查。不过我会尝试两种方法,谢谢。 - Fogmeister
19
这个正则表达式不匹配"\n"。 - twhb

37
所选答案略有不正确,因为它无法匹配换行符或回车。如果您希望所选内容包含任何换行符,则匹配所有字符的正则表达式非常有用: [\s\S]+ [\s\S]匹配空格字符(包括换行符字符)或非空格字符中的一个字符。由于所有字符都是空格或非空格,因此该字符类匹配任何字符。 + 匹配前面表达式的一个或多个。

1
一个更加简洁的替代方案是:[^]+ - Andre Nuechter
4
[^]+只适用于JavaScript正则表达式引擎,不适用于Python、PCRE、Go等其他引擎。 - Vinnie James
[\s\S]+ 可以工作。在 JavaScript 中 .* 无法工作。 - Rami Sedhom

9

^表示行首的锚点,因此它将是一个“零宽度匹配”,意味着它不会匹配任何实际字符(并且在^之后匹配的第一个字符将是字符串的第一个字符)。同样,$是行尾锚点。

*是一个量词。它本身不会匹配任何内容;它只表示一个模式部分可以匹配多少次。具体来说,它表示前面的“原子”(即前面的字符或前面的括号子模式)可以匹配任意数量的次数。

要实际匹配一些字符集,您需要使用字符类。正如RichieHindle所指出的,您在这里需要使用的字符类是.,它代表除换行符外的任何字符(并且可以使用适当的标志使其匹配换行符)。因此,.*表示*(任意数量)匹配.(任何字符)。同样,.+表示+(至少一个)匹配.(任何字符)。


6
出现了神秘的踩!我的回答事实上有错误吗?太长没看?并没有完全回答所提出的问题?我们永远无法确定! - Kyle Strand

1
我知道这篇文章有点老了,但我们可以有不同的方法,比如:
  1. .*
  2. (.*?)

注意:文中保留了HTML标签。

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