很多站长朋友们都不太清楚php正则引号,今天小编就来给大家整理php正则引号,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php正则表达式替换问题php函数preg_replace的使用问题 2、 php 的 preg_replace 函数中的 正则表达式问题 为什么是 preg_replace("/(.*)[\/\\\]/",'',$text) 3、 请问下面的php正则有什么问题?为什么只匹配出了http啊 php正则表达式替换问题php函数preg_replace的使用问题都帮你测试好了,正则多写一个<ul>就能搞定了:
<?php
$str = '你的一大堆字符串'; // 你如果直接放字符串,需要用单引号
$reg = '/<div class="pic-list">\s+<ul>.*?<\/ul>\s+<\/div>/is';
$new_str = preg_replace( $reg, '', $str);
echo $new_str;
?>
php 的 preg_replace 函数中的 正则表达式问题 为什么是 preg_replace("/(.*)[\/\\\]/",'',$text)转义是有两个地方的,一个是PHP解析器,一个是PHP内的正则表达式解析器。
PHP代码在运行的时候,所有使用引号的PHP常量都会被解析一次,字符串如果是一个正则表达式,交给正则引擎又会被解析一次。
所以,当表达式中要用到一个 \ 的时候,需要写两个,也就是 \\ 而当表达式需要两个的时候,需要写四个,也就是 \\\\。
当字符串 "\\\\" 经过PHP编译引擎的时候转义一次,得到 "\\" 这个字符串,然后再传递给正则引擎执行正则匹配,再被解析转义一次,得到 "\"
你的代码 preg_replace("/(.*)[\/\\\]/",'',$text) 中的表达式 "/(.*)[\/\\\]/" 经过PHP编译引擎后,得到的是 "/(.*)[\/\\]/" ,因为] 符号在PHP引擎中是不需要转义的,所以 \ 符号原样输出。当 "/(.*)[\/\\]/" 进入正则引擎的时候,解析得到 /(.*)[/\]/
引用的地址是PHP官方的解释:
replacement中可以包含后向引用\\n
或(php 4.0.4以上可用)$n, 语法上首选后者. 每个
这样的引用将被匹配到的第n个捕获子组捕获到的文本替换. n
可以是0-99, \\0和$0代表完整的模式匹配文本.
捕获子组的序号计数方式为: 代表捕获子组的左括号从左到右, 从1开始数. 如果要在replacement
中使用反斜线, 必须使用4个("\\\\", 译注: 因为这首先是php的字符串, 经过转义后, 是两个, 再经过
正则表达式引擎后才被认为是一个原文反斜线).
请问下面的php正则有什么问题?为什么只匹配出了http啊$str="";
$pattern="/^(http|ftp|https):\/\/(\w+\.\w+.\w+)/";
preg_match($pattern,$str,$match);
print_r($match);
这样写不知道可是你要需要的,如果只是分解一个URL完全可以使用PHP的一个函数来处理,parse_url这个函数就是分解URL的。
关于php正则引号的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php正则引号 phpemail正则的详细内容...