Heim > Backend-Entwicklung > PHP-Tutorial > 求截取PHP指定字符串代码

求截取PHP指定字符串代码

WBOY
Freigeben: 2016-06-23 14:00:06
Original
1035 Leute haben es durchsucht

有下面一段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);
Nach dem Login kopieren
<td align="Center" rowspan="2" width="7%">aaaa<br>dddd<br></td >
Nach dem Login kopieren

还有点小问题,单独运行没问题,但上面的表达式实际用到我的字符串时,因为第二段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);
Nach dem Login kopieren

补充说明: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编码
Nach dem Login kopieren

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

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

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

1

echo preg_replace('/<br>[^<]+/', '', $s, 2);
Nach dem Login kopieren
Nach dem Login kopieren


2
echo preg_replace('/\(.+?\)/', '', $s);
Nach dem Login kopieren
Nach dem Login kopieren

1

echo preg_replace('/<br>[^<]+/', '', $s, 2);
Nach dem Login kopieren
Nach dem Login kopieren


2
echo preg_replace('/\(.+?\)/', '', $s);
Nach dem Login kopieren
Nach dem Login kopieren


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

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

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

<?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);?>
Nach dem Login kopieren

请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]) : '';	    	 }
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage