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

php – 如果没有预匹配

发布时间:2020-12-13 18:08:16 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 Regex: match everything but7个 是否有可能在仍然返回true的情况下对不应匹配的东西进行preg_match? 例如,目前我们有…… if (preg_match('#^Mozilla(.*)#',$agent)) { 我们想检查Mozilla字符串是否不在$agent中,但仍然有preg_match返回true.
参见英文答案 > Regex: match everything but7个
是否有可能在仍然返回true的情况下对不应匹配的东西进行preg_match?

例如,目前我们有……

if (preg_match('#^Mozilla(.*)#',$agent)) {

我们想检查Mozilla字符串是否不在$agent中,但仍然有preg_match返回true.

所以我们不能把它改成……

if (!preg_match('#^Mozilla(.*)#',$agent)) {

谢谢

你想要的是一个 negative lookahead,语法是:
if (preg_match('#^(?!Mozilla).#',$agent)) {

实际上,你可以为#^(?!Mozilla)#而逃脱.我不知道PHP会如何看待一个只有零宽度令牌的模式,但是I’ve tested it in JavaScript and it works fine.

编辑:

如果你想确保Mozilla没有出现在字符串中的任何地方,你可以使用这个……

if (preg_match('#^((?!Mozilla).)*$#',$agent)) {

……但只有你不能用它!

if (strpos($agent,'Mozilla') !== false) {

(编辑:李大同)

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

    推荐文章
      热点阅读