如何用PHP正则表达式替换首个换行外的其余换行符?
一行正则实现方案
直接用下面这行PHP代码就能完成需求:
$output = preg_replace('/(?<=\n.*)\n/', ' ', $input);
正则说明
(?<=\n.*)是正向后顾断言,用来确保当前匹配的换行符\n,其前面已经出现过至少一个换行(也就是第一个换行之后的所有换行)- 把这些匹配到的换行符替换成空格,第一个换行就会被完整保留,正好符合你的输出要求。
如果遇到连续多个换行的场景(比如1 Street\n\nCity\nST\n12345),想要把连续换行合并成单个空格,可以把正则改成:
$output = preg_replace('/(?<=\n.*)\n+/', ' ', $input);
内容的提问来源于stack exchange,提问作者Osama Bodiaf
相关产品推荐
相关产品推荐

