PHP正则表达式期间

TOK*_*VAR 5 php regex

如何将句点放入PHP正则表达式?

它在代码中的使用方式是:

echo(preg_match("/\$\d{1,}\./", '$645.', $matches));
Run Code Online (Sandbox Code Playgroud)

但显然这段时间$645.没有得到认可.请求有关如何使其工作的提示.

Gum*_*mbo 8

既然.是一个特殊的角色,你需要逃避它才能真正拥有它,所以\..

如果要在字符串中使用它,请记住也要转义转义字符.因此,如果要foo\.bar在字符串声明中编写正则表达式,则需要"foo\\.bar".


jen*_*ram 3

逃避吧。句点在正则表达式中具有特殊含义,因为它代表任何字符 - 它是通配符。为了表示和匹配文字,.需要对其进行转义,这是通过反斜杠完成的\,即\.

/[0-9]\.[ab]/
Run Code Online (Sandbox Code Playgroud)

匹配数字、句点和“a”或“ab”,而

/[0-9].[ab]/
Run Code Online (Sandbox Code Playgroud)

匹配数字、任何单个字符1以及“a”或“ab”。

请注意,PHP 也使用反斜杠作为双引号字符串中的转义字符。在这些情况下,您需要双重转义:

$single = '\.';
$double = "\\.";
Run Code Online (Sandbox Code Playgroud)

更新
echo(preg_match("/\$\d{1,}./", '$645.', $matches));可以重写为echo(preg_match('/\$\d{1,}\./', '$645.', $matches));echo(preg_match("/\\$\\d{1,}\\./", '$645.', $matches));。他们 工作


1)不是换行,除非通过s修饰符配置。