PHP正则表达式期间

时间:2010-10-25 06:50:57

标签: php regex

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

代码中使用的方式是:

echo(preg_match("/\$\d{1,}\./", '$645.', $matches));

但显然$645.中的句号没有得到认可。请求有关如何使其工作的提示。

2 个答案:

答案 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修饰符进行配置。

相关问题