<p>1111111</p>
<p>2222222</p>
<p>33333333</p>
<p>4444444</p>
<p>55555555</p>
<p>66666666</p>
<p>7777777</p>
匹配出<p>1111111 </p>中的</p>
和最后一段<p>7777777 </p>的</p>
正则如何弄?
12 个解决方案
#1
preg_match_all('/^<p>.+<\/p>|<p>.+<\/p>$/U',$s,$m);
#2
这样匹配到的是整一段了
我要的只是一个</p>
#3
preg_match_all('/^<p>.+(<\/p>)|<p>.+(<\/p>)$/U',$s,$m);
#4
$s =<<< TXTArray
<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);
(
[0] => </p>
<p>2222222</p>
<p>33333333</p>
<p>4444444</p>
<p>55555555</p>
<p>66666666</p>
<p>7777777 </p>
[1] => </p>
[2] => </p>
)
#5
如果只是想要匹配
</p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
#6
别用正则了
<?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>');
?>
运行结果:
113
10
109
#7
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
#8
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
#9
$s =<<< TXT<p>1111111</p> aaa
<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);
<p>2222222</p>
<p>33333333</p>
<p>4444444</p>
<p>55555555</p>
<p>66666666</p>
<p>7777777</p> BBB
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
#10
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个'</p>'的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
#11
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个'</p>'的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
不用切,找出位置直接替换就可以
<?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;
#12
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个'</p>'的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
不用切,找出位置直接替换就可以
<?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;
这个可以
#1
preg_match_all('/^<p>.+<\/p>|<p>.+<\/p>$/U',$s,$m);
#2
preg_match_all('/^<p>.+<\/p>|<p>.+<\/p>$/U',$s,$m);
这样匹配到的是整一段了
我要的只是一个</p>
#3
preg_match_all('/^<p>.+(<\/p>)|<p>.+(<\/p>)$/U',$s,$m);
#4
$s =<<< TXTArray
<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);
(
[0] => </p>
<p>2222222</p>
<p>33333333</p>
<p>4444444</p>
<p>55555555</p>
<p>66666666</p>
<p>7777777 </p>
[1] => </p>
[2] => </p>
)
#5
如果只是想要匹配
</p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
#6
别用正则了
<?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>');
?>
运行结果:
113
10
109
#7
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
#8
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
#9
$s =<<< TXT<p>1111111</p> aaa
<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);
<p>2222222</p>
<p>33333333</p>
<p>4444444</p>
<p>55555555</p>
<p>66666666</p>
<p>7777777</p> BBB
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
#10
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个'</p>'的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
#11
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个'</p>'的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
不用切,找出位置直接替换就可以
<?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;
#12
如果只是想要匹配 </p>的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$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);
写错了,$ep = strripos($str, '</p>');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个'</p>'的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
不用切,找出位置直接替换就可以
<?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;
这个可以