正则写在单引号和双引号中的区别

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

另外需要注意的是,PHP中的正则表达式必须以'/'开始和结束,如:"/abc/",而不能写作"abc"。


总体:使用双引号+转义,PHP先解析,然后正则在解析

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值