正则表达式匹配替换第n次出现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式匹配替换第n次出现相关的知识,希望对你有一定的参考价值。
<p>你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。</p>
<p>我很好。我很好,我很好,我很好。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。<p>
用正则表达式匹配出每个<p></p>里面的第三个。(句号)然后替换成169号
_name=(?:[^"]*")n 这里就是匹配第n次出现。
举例:
$string = \'_name=foo"bar"test" more text"\';
// This pattern will not include the last " (note the 2, not 3)
$pattern = \'/_name=((.*?")2.*?)"/\';
preg_match($pattern, $string, $m);
echo $m[1]; 参考技术A // php code
$source = '<p>你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。</p>
<p>我很好。我很好,我很好,我很好。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。你好吗你好吗,你好吗,你好吗。</p>';
$source = preg_replace('/(<p>(?:.*?。)2.*?)。(.*?<\\/p>)/s','$1(169号)$2',$source);
echo $source;追问
大师,有没有QQ啊,太牛了。
正则表达式匹配多个字符
* 匹配前一个字符出现0次或者无限次
+ 匹配前一个字符出现1次或者无限次
? 匹配前一个字符出现0次或者1次
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现从m次到n次
以上是关于正则表达式匹配替换第n次出现的主要内容,如果未能解决你的问题,请参考以下文章
sed / awk 匹配文件中第二次出现的正则表达式,并替换整行