我如何使一个表达式匹配绝对任何东西(包括空白)?例子:

Regex:我买了_____羊。

火柴:我买了羊。我买了一只羊。我买了五只羊。

我尝试使用(.*),但似乎没有工作。


当前回答

选择并记住以下1个!!:)

[\s\S]*
[\w\W]*
[\d\D]*

解释:

\s:没有空白

\w:字\w:不字

\d:数字\d:不是数字

(如果你想要1个或更多字符[而不是0个或更多],可以将*替换为+)。

附加编辑:

如果你想匹配一行中的所有内容,你可以使用这个:

[^\n]+

解释:

^:不

\ n: linebreak

+:表示1个字符或更多

其他回答

老实说,很多答案都是旧的,所以我发现,如果你只是简单地测试任何字符串,不管字符内容“/。*/i"将充分获得所有内容。

Regex: /I bought.*sheep./ Matches - the whole string till the end of line I bought sheep. I bought a sheep. I bought five sheep. Regex: /I bought(.*)sheep./ Matches - the whole string and also capture the sub string within () for further use I bought sheep. I bought a sheep. I bought five sheep. I boughtsheep. I bought a sheep. I bought fivesheep. Example using Javascript/Regex 'I bought sheep. I bought a sheep. I bought five sheep.'.match(/I bought(.*)sheep./)[0]; Output: "I bought sheep. I bought a sheep. I bought five sheep." 'I bought sheep. I bought a sheep. I bought five sheep.'.match(/I bought(.*)sheep./)[1]; Output: " sheep. I bought a sheep. I bought five "

使用.*,并确保您使用的实现相当于单行,以便在行尾匹配。

这里有一个很好的解释-> http://www.regular-expressions.info/dot.html

(.*?)不适合我。我试图匹配注释周围的/* */,其中可能包含多行。

试试这个:

([a]|[^a])

这个正则表达式匹配a或除a之外的任何东西,当然,它意味着匹配所有东西。

顺便说一句,在我的情况下,/\*([a]|[^a])*/匹配C风格的注释。

感谢@mpen提供了一个更简洁的方式。

[\s\S]

(.*?)匹配任何东西-我已经使用它很多年了。