Rumah > pembangunan bahagian belakang > tutorial php > 求截取PHP指定字符串代码

求截取PHP指定字符串代码

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 14:00:06
asal
1074 orang telah melayarinya

有下面一段html字符串:

aaaa
bbbb
cccc
dddd
 >
要想输出下面内容:
aaaa
dddd
 >
即删除中间两个
前面的内容及
的简易代码,由于还要输出为html,不用数组方式。


回复讨论(解决方案)

$s = '<td align="Center" rowspan="2" width="7%">aaaa<br>bbbb<br>cccc<br>dddd<br></td >';echo preg_replace('/<br>\w+/', '', $s, 2);
Salin selepas log masuk
<td align="Center" rowspan="2" width="7%">aaaa<br>dddd<br></td >
Salin selepas log masuk

还有点小问题,单独运行没问题,但上面的表达式实际用到我的字符串时,因为第二段br里含有( ),,最后一段br里含有“-”,截取出来有点问题。
$s = 'aaaa
11(22)
cccc
dd-dd
';
截取出来变成了:
$s = 'aaaa(22)
cccc-dd
';

$s = '<td align="Center" rowspan="2" width="7%">aaaa<br>11(22)<br>cccc<br>dd-dd<br></td >';echo preg_replace('/<br>[\(\)-\w]+/', '', $s, 2);
Salin selepas log masuk

补充说明:aaaa、cccc是中文。

补充说明:aaaa、cccc是中文。

$s = '<td align="Center" rowspan="2" width="7%">中文<br>11(22)<br>拼音<br>dd-dd<br></td >';echo preg_replace('/<br>[\x{4e00}-\x{9fa5}\w\(\)-]+/u', '', $s,2) ;//UTF-8编码
Salin selepas log masuk

谢谢。第一段截取出来的还是错位,还是直接贴我原始的字符吧:
计算机编程
1-9(1,2)
王某
3-307

要想输出两种效果:
1. 计算机编程
3-307

2.计算机编程
1-9
3-307
第二段只去掉括号及里面内容

1

echo preg_replace('/<br>[^<]+/', '', $s, 2);
Salin selepas log masuk
Salin selepas log masuk


2
echo preg_replace('/\(.+?\)/', '', $s);
Salin selepas log masuk
Salin selepas log masuk

1

echo preg_replace('/<br>[^<]+/', '', $s, 2);
Salin selepas log masuk
Salin selepas log masuk


2
echo preg_replace('/\(.+?\)/', '', $s);
Salin selepas log masuk
Salin selepas log masuk


谢谢版主,第一条正确了,第二条的“王某
还在。

echo preg_replace('/<br>[\x{4e00}-\x{9fa5}\w\(\)\-,]+/u', '', $s,2) ;//UTF-8编码
Salin selepas log masuk

你多了,逗号在【】方括号里面加进去啊

<?php$str = '<td align="Center" rowspan="2" width="7%">aaaa<br>bbbb<br>cccc<br>dddd<br></td >';$arr = explode('<br>', $str);array_splice($arr, 1, 2);echo implode('<br>', $arr);?>
Salin selepas log masuk

请jordan102帮忙,第二条 echo preg_replace('/\(.+?\)/', '', $s) 还需要截掉“王某
“的部分。

echo preg_replace_callback('/<br>[^<]+/', 'foo', $s, 2); function foo($m){     return strpos($m[0], '(') !== false ? preg_replace('/\(.+?\)/','',$m[0]) : '';	    	 }
Salin selepas log masuk

谢谢,单独对于一句里面的运行没问题了。但前面还有些语句和空格之类的加上运行就有问题了。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan