Home > Article > Backend Development > 正则如何匹配第一个的</p>和最后一个</p>
比如文章如下
1111111
2222222
33333333
4444444
55555555
66666666
7777777
1111111
中的7777777
的preg_match_all('/^
.+|
.+$/U',$s,$m);
preg_match_all('/^
.+|
.+$/U',$s,$m);
这样匹配到的是整一段了
我要的只是一个
preg_match_all('/^
.+()|
.+()$/U',$s,$m);
$s =<<< TXT<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>TXT;preg_match('#(</p>).+(</p>)#s', $s, $r);print_r($r);Array
2222222
33333333
4444444
55555555
66666666
7777777
如果只是想要匹配
的话,可以不用正则吧。$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
别用正则了
<?php $s='<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';print strlen($s);print stripos($s,'</p>');print strripos($s,'</p>');?>运行结果:11310109
如果只是想要匹配
的话,可以不用正则吧。$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
如果只是想要匹配
$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
$s =<<< TXT<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>TXT;echo preg_replace('#(</p>)(.+)(</p>)#s', '$1aaa$2$3BBB', $s);
1111111
aaa2222222
33333333
4444444
55555555
66666666
7777777
BBB$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
如果只是想要匹配
$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
如果只是想要匹配
$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
<?php $s='<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';print strlen($s);$find = '</p>';$find_len = 4; //</p> 长度$s = substr_replace($s, $find."第一个p", stripos($s,'</p>'), $find_len);$s = substr_replace($s, $find."最后一个p", strripos($s,'</p>'), $find_len);print $s;
如果只是想要匹配
$str = '<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';$fp = stripos($str, '</p>');$first = substr($str, $fp, 4);$ep = stripos($str, '</p>');$end = substr($str, $ep, 4);
<?php $s='<p>1111111</p><p>2222222</p><p>33333333</p><p>4444444</p><p>55555555</p><p>66666666</p><p>7777777</p>';print strlen($s);$find = '</p>';$find_len = 4; //</p> 长度$s = substr_replace($s, $find."第一个p", stripos($s,'</p>'), $find_len);$s = substr_replace($s, $find."最后一个p", strripos($s,'</p>'), $find_len);print $s;