Code前端首页关于Code前端联系我们

包含match量词不适用于php的词条

terry 2年前 (2023-09-30) 阅读数 39 #PHP
文章标签 PHP的Explode函数

本文目录一览:

  • 1、PHP中preg_match()和preg_replace()的一些问题
  • 2、PHP中正则函数preg_match匹配出现错误,应该是什么问题?
  • 3、PHP正则匹配问题preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);
  • 4、php 正则删除前后固定字符,中间含有某字符
  • 5、PHP 问题,下面这段里面把eregi 语句改成preg_match语句 php5.3不支持eregi(),用preg_match()替代。

PHP中preg_match()和preg_replace()的一些问题

(一)当中的!是正则表达式(简称正则式)的分割界定符号。意味着开始的!和第二个!之间是正则式的【主式】(为了便于你理解,不得不这么做个伪定义),我们大多数时候都喜欢用“/”作为分割界定符号,因为在(一)中,刚好已经有“/”在【主式】中了。第二个!后面的isU等,是正则式的修正符,至于各个修正符的用法和作用,强烈建议你去查看PHP手册。

(二)这个[1]中的1,代表着匹配到结果赋值给$outputs后,$outputs数组的下标为1的值,就是前面【主式】中"(*)"匹配到的内容。

(三)第三个,是正则式中“\”转义符号的用法体现。在正则式中“.”是匹配所有字符的(暂不考虑修正符模式),“\.”却可以匹配“.”了。在这个正则式中,\/wap\.php将会匹配到“/wap.php”,并用“index.php”去替换掉它。

PHP中正则函数preg_match匹配出现错误,应该是什么问题?

这个是你的表达式语法问题,preg_match中的表达式应该带有斜杠,你这个应该修改为'/^[a-z0-9_\-\.]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$/i'

PHP正则匹配问题preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);

使用括号会对匹配结果进行分组。在匹配结果中,键为0的表示整个正则匹配的内容,之后的是对应的括号中匹配的东西。

另外,你这里使用的是preg_match,所以只会匹配一个结果,如果想匹配所有的话,就使用preg_match_all

为了应正上面的描述,你可以运行以下代码试试:

$dirinfo = array();

preg_match_all("/([a-zA-Z]+)\d+/","tech01/web",$dirinfo);

print_r($dirinfo);

php 正则删除前后固定字符,中间含有某字符

style(?=.*\.b).*\/style

解释如下:

(?=.*\.b) 匹配含有.b的字符,?=是一个非获取匹配,不会占用字符。

这样的话,就可以匹配到你想要的,不会伤及无辜。

PHP 问题,下面这段里面把eregi 语句改成preg_match语句 php5.3不支持eregi(),用preg_match()替代。

eregi 与 preg_match 的语法相差不大,试修改如下(由于条件限制,未经测试):

if (($envType == 1  preg_math('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$/i', $str))

    || ($envType == 2  preg_math('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))/i', $str))) {

    if (PMA_langSet($lang)) {

        return true;

    }

}

eregi 使用 preg_match 配合  i 修正符替代。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门