如何将句点放入PHP正则表达式?
代码中使用的方式是:
echo(preg_match("/\$\d{1,}\./", '$645.', $matches));
但显然$645.
中的句号没有得到认可。请求有关如何使其工作的提示。
答案 0 :(得分:8)
由于.
是一个特殊字符,因此您需要将其转义为字面意义,因此\.
。
如果要在字符串中使用它,请记住也要转义转义字符。因此,如果要在字符串声明中编写正则表达式foo\.bar
,则需要"foo\\.bar"
。
答案 1 :(得分:3)
逃避。句点在正则表达式中具有特殊含义,因为它表示任何字符 - 它是通配符。要表示和匹配文字.
,需要通过反斜杠\
进行转义,即\.
/[0-9]\.[ab]/
匹配数字,句点和“a”或“ab”,而
/[0-9].[ab]/
匹配一个数字,任何单个字符 1 ,以及“a”或“ab”。
请注意,PHP也使用反斜杠作为双引号字符串中的转义字符。在这些情况下,你需要双倍逃避:
$single = '\.';
$double = "\\.";
<强>更新强>
此echo(preg_match("/\$\d{1,}./", '$645.', $matches));
可以重写为echo(preg_match('/\$\d{1,}\./', '$645.', $matches));
或echo(preg_match("/\\$\\d{1,}\\./", '$645.', $matches));
。他们both work。
1)非换行,除非通过s
修饰符进行配置。