我有以下字符串:
$string = '
Test1,One line
Test2,"Two lines
Hello"
Test3,One line
';
我想在双引号内修剪新行。所以最终结果将是:
$string = '
Test1,One line
Test2,"Two lines Hello"
Test3,One line
';
正则表达式采用什么方法?
答案 0 :(得分:0)
唯一可能的方法是在双引号之间进行匹配,并仅使用preg_replace_callback
将所有换行符替换为匹配项内的空字符串:
$string = '
Test1,One line
Test2,"Two lines
Hello"
Test3,One line
';
echo preg_replace_callback('~"[^"]*"~', function($m) {
return preg_replace('~\R+~', '', $m[0]);
}, $string);
请参见PHP demo。
输出:
Test1,One line
Test2,"Two lines Hello"
Test3,One line