我有一个mysql数据库,可以存储100万个广告;广告内容";并且具有随机示例(Ad_Content(:
1情况:\r\n{text…text…text..}\r\n\r\n\r\n<-这一排是很好的
2情况:{text…text…}\r\n\r\n<-错了,有1个空格的甜菜文串"\\r\n\r\n";
3情况:\r\n\r\n{text…}\r\n\r\n\r\n<-错了,有两个空格的甜菜文串"\\r\n\r\n";
4情况:\r\n\r\n\r\n{text…text…}\r\n\r\n\r\n<-错了,有3个空格的甜菜文串";\\r\n*";
我试图删除在字符串"中找到的所有空格;\\r\n组";用REGEX,但我拿不到。
预期示例:
1情况:\r\n{text…text…}\r\n\r\n<-这一排是很好的
2案例:{text…text…}\r\n\r\n\r\n(良好(
3情况:\r\n\r\n{text…}\r\n\r\n\r\n(良好(
4情况:\r\n\r\n\r\n{text…text…}\r\n\r\n\r\n(良好(
我的代码是:
$adContent = $getDataAd->Ad_Content;
// This REGEX its ok, replace all rnrnrnrn... for 2 <br> but broken if detect a space :(
$pattern = "/(?:r?n[ ]*)+/";
$adContent = preg_replace($pattern, "<br><br>", $adContent);
谢谢:(
您可以对以下模式进行正则表达式替换:
rns+(?=rn)
示例脚本,使用第三个示例作为输入:
$input = "rn rnrnrn{text...text...}rn rnrn rn";
$output = preg_replace("/rns+(?=rn)/", "rn", $input);
这里的技巧是使用前瞻(?=rn)
来断言,但不消耗所需的后续CRLF。通过这种方式,我们允许后面的CRLF在其前面也有不需要的空间。