加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP regexp用于“字符串或模式的开始”

发布时间:2020-12-13 21:47:58 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 Regex lookahead,lookbehind and atomic groups????????????????????????????????????3个 有没有办法(除了做两个单独的模式匹配)在PHP中使用preg_match来测试字符串的开头或模式?更具体地说,我经常发现自己想要测试我有一个匹配的模式,其前面
参见英文答案 > Regex lookahead,lookbehind and atomic groups????????????????????????????????????3个
有没有办法(除了做两个单独的模式匹配)在PHP中使用preg_match来测试字符串的开头或模式?更具体地说,我经常发现自己想要测试我有一个匹配的模式,其前面没有东西,如

preg_match('/[^x]y/',$test)

(也就是说,如果它前面没有x,则匹配y),但如果它出现在$test的开头(当它也不在x之前,但前面没有任何字符,那么也匹配y,所以[^ x]构造不起作用,因为它总是需要一个字符来匹配它.

在字符串的末尾有一个类似的问题,以确定是否发生了一个没有其他模式的模式.

解决方法

您可以简单地使用标准的交替语法:

/(^|[^x])y/

这将匹配输入开头之前的y或除x之外的任何字符.

当然在这个特定的例子中,^锚的替代方案很简单,你也可以很好地使用negative lookbehind:

/(?<!x)y/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读