很多站长朋友们都不太清楚php循环正则,今天小编就来给大家整理php循环正则,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 如何用php正则表达式取出“字符”间的字符 2、 PHP分割,并循环获取数据,需用到正则表达式,高分悬赏,答对追加100分 3、 急~!!php正则表达式匹配div里相同的class 4、 求一个正则循环匹配的php代码 如何用php正则表达式取出“字符”间的字符PHP使用正则表达式提取字符串中尖括号<>、小括号()、中括号[]、大括号{}中的字符示例,需要的朋友可以参考下
复制代码 代码如下:
$str="你好<我>(爱)[北京]{天安门}";
echo f1($str); //返回你好
echo f2($str); //返回我
echo f3($str); //返回爱
echo f4($str); //返回北京
echo f5($str); //返回天安门
function f1($str)
{
$result = array();
preg_match_all("/^(.*)(?:<)/i",$str, $result);
return $result[1][0];
}
function f2($str)
{
$result = array();
preg_match_all("/(?:<)(.*)(?:>)/i",$str, $result);
return $result[1][0];
}
function f3($str)
{
$result = array();
preg_match_all("/(?:\()(.*)(?:\))/i",$str, $result);
return $result[1][0];
}
function f4($str)
{
$result = array();
preg_match_all("/(?:\[)(.*)(?:\])/i",$str, $result);
return $result[1][0];
}
function f5($str)
{
$result = array();
preg_match_all("/(?:\{)(.*)(?:\})/i",$str, $result);
return $result[1][0];
}
PS: (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
PS3:都过了验证器的验证,验证器见参考资料。
PHP分割,并循环获取数据,需用到正则表达式,高分悬赏,答对追加100分<?php
$str = "ABC'; F(ZZZ), KSE KKS(YYY), PSX-D.M(XXX)";
$arr = explode(",",$str);//分割成数组
foreach($arr as $value){//用foreach循环,也可以用for循环
$out = array();//储存匹配的数组
$title = "";//储存title部分
$text = "";//储存链接显示文本
//先把括号里的内容和括号外的内容匹配到数组$out
preg_match("|(.+)\((.+)\)|",$value,$out);
//括号里的内容就是title
$title = $out[2];
//把括号外的内容中所有符号替换成-(这里去了一下首尾空格)
$text = preg_replace("|(\W+)|","-",trim($out[1]));
//OK了,输出
echo "<a href=\"#\" title=\"{$title}\" />{$text}</a>,";
}
/**
最后输出:
<a href="#" title="ZZZ" />ABC-F</a>,<a href="#" title="YYY" />KSE-KKS</a>,<a href="#" title="XXX" />PSX-D-M</a>,
*/
急~!!php正则表达式匹配div里相同的class初步思路是:先通过正则表达式匹配出所有符合条件的div到数组后,再循环数组的每个元素,通过对比每个元素中的class进行过滤筛选出第一个div到另一个数组。由于用手机上网,无法编写和调试代码。感兴趣的话请来我的网站交流:云眼。
求一个正则循环匹配的php代码下面的程序调试通过,正确运行,满足你的要求,除非你粘贴错误:
<?php
$s='<div class="bbpic">
<a><img src="/data/upload/help/202302/14/3d3f98e5497e4906e7963cfcd59a97df."/></a>
</div>
<div class="bbinfo">
<a>标题1</a>
</div>
<div class="bbpic">
<a><img src="/data/upload/help/202302/14/b3fae2fa9d92f7e2f89961c89bdcae01."/></a>
</div>
<div class="bbinfo">
<a>标题2</a>
</div>
<div class="bbpic">
<a><img src="/data/upload/help/202302/14/bc9bfff4ab20297aaeeea1edd4943ebc."/></a>
</div>
<div class="bbinfo">
<a>标题3</a>
</div>';
if (preg_match_all('|<div class="bbpic">\s*<a><img src="/data/upload/help/202302/14/4742496dc83134e09ceb3a82347d1eee."]*)"/></a>\s*</div>\s*<div
class="bbinfo">\s*<a>/data/upload/help/202302/14/4742496dc83134e09ceb3a82347d1eee.<]*)</a>\s*</div>|', $s, $reg)){
foreach ($reg[1] as $i=>$k1){
$k2=$reg[2][$i];
echo " $k1 $k2 <br>\n";
}
}
?>
关于php循环正则的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。