如果想匹配如.,{,$,等特殊字符(在正则表达式中有特殊意义的字符),就必须在该字符前加反斜杠(\),(C中管它\叫转义符)如果想表示这个反斜杠(\),就在他前面再加个反斜杠,即改成(\\)。
必须注意的是在PHP中要尽量把正则表达式放在单引号(')中。如果把正则表达式放在双引号里则会引起一些不必要的麻烦。在PHP的正则表达式中也要使用反斜杠(\)来掩盖一些特殊的字符--像反斜杠(\)自身。在表达式中如想匹配一个反斜杠(\),也必须使用两个反斜杠(\)来表示它是原义的反斜杠(\),而不是转义符。
类似的原因,把反斜杠(\)放在双引号中时也要使用两个反斜杠(\)来转义。令人困惑的是,根据以上规则,在PHP中的正则表达式里要表示一个反斜杠(\)就要四个反斜杠(\)。PHP解析器会将四个反斜杠(\)解析成两个。之后正则解析又将之解析成一个。
美圆符$在PHP字串和正则表达式中也是个有特殊意义的字符。如需匹配$的原义字符,就必须写成\\\$.因为它在双引号里,PHP会将之解析为\$,然后正则解析就会将它匹配为美圆符(而不是表示字符串的结束位置)。
另外需要注意的是,PHP中的正则表达式必须以'/'开始和结束,如:/abc/,而不能写作abc。
0 评论:
发表评论