首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php正则表达式怎的去掉换行符\r\n

2012-10-16 
php正则表达式怎样去掉换行符\r\n现在有这么一段字符串:abcxyzqwerty[abc]aaaaaaaabbbbbbbbbccccccccc[/ab

php正则表达式怎样去掉换行符\r\n
现在有这么一段字符串:
abcxyz
qwerty
[abc]aaaaaaaa
bbbbbbbbb
ccccccccc[/abc]
poiuyt
lkjhgf
[abc]
dddddd
eeeeeee
ffff[/abc]
poiuy
asdfg

我希望用个正则表达式,把[abc]和[/abc]之间的换行符(也就是\r\n)给替换掉。但是[abc]和[/abc]之外的字符串的换行符保留不变。
上面的是个例子,有可能是这种情况[abc]xxxx[/abc][abc]......,也就是前一个[/abc]和后一个[abc]紧挨着。

如果能兼容linux和windows(换行符好像不一样),就更完美了。

弄了一晚上,请教了群友,仍然没有解决,只好来麻烦大家了。

[解决办法]
如果没有嵌套:
preg_replace_callback( '~\[abc\](.*?)\[/abc\]~msi',
function($matches){
return str_replace(array("\r","\n"),'',$matches[0]);
},
$text);
[解决办法]

PHP code
$s =<<< TXTabcxyzqwerty[abc]aaaaaaaabbbbbbbbbccccccccc[/abc]poiuytlkjhgf[abc]ddddddeeeeeeeffff[/abc]poiuyasdfgTXT;echo preg_replace('#\[abc].+?\[/abc]#se', 'preg_replace("/[\r\n]+/","","$0")', $s);
[解决办法]
探讨

PHP code
$s =<<< TXT
abcxyz
qwerty
[abc]aaaaaaaa
bbbbbbbbb
ccccccccc[/abc]
poiuyt
lkjhgf
[abc]
dddddd
eeeeeee
ffff[/abc]
poiuy
asdfg
TXT;

echo preg_replace('#\[abc].+?\[/abc]#se', 'preg_replace("/[……

热点排行