Regex在甜菜文确定字符(PHP)的情况下进行替换



我有一个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在其前面也有不需要的空间。

最新更新