最近我在php中使用[a-z]类范围regexp。我不知道为什么,但它不是只匹配一个到z的字符,而是匹配控制字符。 例:
preg_match("#^[a-z]{0,3}$#", "aa\n")
返回1.(我在php 5.6上)。 我想阻止控件字符匹配。我用[:^ cntrl:]完成了一些测试而没有多少成功。 请有人帮助我。 提前谢谢。
答案 0 :(得分:2)
$
锚点可以在字符串的末尾匹配,也可以在字符串中的最后一个换行符之前匹配。
使用/D
PCRE_DOLLAR_ENDONLY
修饰符:
preg_match("#^[a-z]{0,3}$#D", "aa\n")
^
或\z
锚点匹配字符串的结尾:
preg_match("#^[a-z]{0,3}\z#", "aa\n")
echo preg_match("#^[a-z]{0,3}$#", "aa\n"); // => 1
echo preg_match("#^[a-z]{0,3}$#D", "aa\n"); // => 0
echo preg_match("#^[a-z]{0,3}\z#", "aa\n"); // => 0