如何使表达式绝对匹配任何东西(包括空格)?
例:
正则表达式: 我买了_____只羊.
比赛:我买了羊.我买了一只羊.我买了五只羊.
我尝试过使用(.*)
,但这似乎不起作用.
更新:我得到它的工作,显然问题不在于正则表达式,只是(.)字符被转义.
Tim*_*ker 257
通常,点匹配除换行符之外的任何字符.
因此,如果.*
不起作用,请设置"点匹配换行符"选项(或使用(?s).*
).
如果您使用的是没有"dotall"选项的JavaScript,请尝试[\s\S]*
.这意味着"匹配任意数量的空格或非空白字符" - 有效地"匹配任何字符串".
另一个仅适用于JavaScript(并且不被任何其他正则表达式风格识别)的选项[^]*
也匹配任何字符串.但[\s\S]*
似乎使用得更广泛,也许是因为它更便携.
小智 156
(.*?)
匹配任何东西 - 我已经使用它多年了.
Tyl*_*ler 84
选择并记住以下1项内容!:)
[\s\S]*
[\w\W]*
[\d\D]*
Run Code Online (Sandbox Code Playgroud)
说明:
\s
:空白\S
:不是空白
\w
:字\W
:不是字
\d
:数字\D
:不是数字
(如果您想要1个或更多字符[而不是0个或更多],您可以交换*
for +
).
奖金编辑:
如果您想在一行中匹配所有内容,可以使用:
[^\n]+
Run Code Online (Sandbox Code Playgroud)
说明:
^
:没有
\n
: 越线
+
:1个字符或更多
Mik*_*aev 17
试试这个:
I bought (.* )?sheep
Run Code Online (Sandbox Code Playgroud)
甚至
I bought .*sheep
Run Code Online (Sandbox Code Playgroud)
如果您使用 JavaScript,ES2018 添加了/s
(dotAll) 标志。使用/s
标志时,点将.
匹配任何字符,包括换行符。
console.log("line_1\nline_2".match(/.+/s))
Run Code Online (Sandbox Code Playgroud)
注意:并非所有浏览器都支持它。