我想在最后匹配一个$。
为什么不起作用:
<?php
$reg = '{$$}';
$str= 'helloc$a';
print preg_match($reg,$str);
它打印1 - 匹配。但我希望它匹配例如abc $或zzz $之类的输入。
答案 0 :(得分:1)
$
是正则表达式中的元字符,具有特殊含义 - 它在一行的末尾断言位置。如果您想匹配文字$
,则需要将其转义,即使用\$
代替$
:
$reg = '{\$$}';
正如Casmir在答案下面的评论部分所指出的那样,当最后一个$
后面跟一个换行符时,这个模式也会匹配。为防止这种情况,您可以改为使用以下模式:
$reg = '{\$$}D';
设置D
修饰符后,模式中的美元元字符仅匹配给定字符串的末尾。如果未设置此修饰符,$
也会在最后一个字符之前匹配(如果它是换行符)。
答案 1 :(得分:-1)
$是PHP中的特殊字符。您应该在它之前添加\。试试这个: $ reg =&#39; / \ $$ /&#39;;