我如何使一个表达式匹配绝对任何东西(包括空白)?例子:
Regex:我买了_____羊。
火柴:我买了羊。我买了一只羊。我买了五只羊。
我尝试使用(.*),但似乎没有工作。
我如何使一个表达式匹配绝对任何东西(包括空白)?例子:
Regex:我买了_____羊。
火柴:我买了羊。我买了一只羊。我买了五只羊。
我尝试使用(.*),但似乎没有工作。
当前回答
因为。查找单个字符,换行符或行结束符除外。
所以,要匹配任何东西,你可以这样使用:(.|\n)*?
希望能有所帮助!
其他回答
试试这个:
I bought (.* )?sheep
甚至
I bought .*sheep
选择并记住以下1个!!:)
[\s\S]*
[\w\W]*
[\d\D]*
解释:
\s:没有空白
\w:字\w:不字
\d:数字\d:不是数字
(如果你想要1个或更多字符[而不是0个或更多],可以将*替换为+)。
附加编辑:
如果你想匹配一行中的所有内容,你可以使用这个:
[^\n]+
解释:
^:不
\ n: linebreak
+:表示1个字符或更多
/。如果没有换行符,*/效果很好。如果它必须匹配换行符,这里有一些解决方案:
Solution | Description |
---|---|
/.*/s |
/s (dot all flag) makes . (wildcard character) match anything, including line breaks. Throw in an * (asterisk), and it will match everything. Read more. |
/[\s\S]*/ |
\s (whitespace metacharacter) will match any whitespace character (space; tab; line break; ...), and \S (opposite of \s ) will match anything that is not a whitespace character. * (asterisk) will match all occurrences of the character set (Encapsulated by [] ). Read more. |
如果你使用JavaScript, ES2018添加了/s (dotAll)标志。带有/s标志的点。将匹配任何字符,包括换行符。
游戏机log(“line_1 \ nline_2”。match (/ + / s))
注意:目前还不是所有浏览器都支持它。
<?php
$str = "I bought _ sheep";
preg_match("/I bought (.*?) sheep", $str, $match);
print_r($match);
?>
http://sandbox.phpcode.eu/g/b2243.php