我正在尝试从括号中删除换行符。
lorum (ip
sum) dolor
所以输出应该是
lorum (ipsum) dolor
我可以使用下面的正则表达式模式在括号内选择文本,但不能删除换行符。
\((.*?)\)
我尝试了\(([\n\r]*?)\)
,但是没有运气。
答案 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);