从括号之间的文本中删除换行符

时间:2018-07-05 01:52:13

标签: php regex

我正在尝试从括号中删除换行符。

lorum (ip
sum) dolor

所以输出应该是

lorum (ipsum) dolor

我可以使用下面的正则表达式模式在括号内选择文本,但不能删除换行符。

\((.*?)\)

我尝试了\(([\n\r]*?)\),但是没有运气。

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式:

(.*\(.*?)(?:\n)(.*?\).*)

演示:https://regex101.com/r/8XWPrW/4/

测试字符串:

lorum (ip
sum) dolor

lorum ip
sum dolor

替换后:

lorum (ipsum) dolor

lorum ip
sum dolor

此外,根据需要,它仅在括号内时才会检测到新行

-编辑-

如评论中所述,它也可以与preg_replace一起使用。只是需要提及的人群

PHP代码:

$data="lorum (ip
sum) dolor

lorum ip
sum dolor";
echo preg_replace("'(.*?\(.*?)(?:\n)(.*?\).*)'", "$1$2", $data);