【发布时间】:2019-12-27 04:29:03
【问题描述】:
使用preg_replace,我需要定义正则表达式PATTERN 以完全匹配换行符序列\r\n 的所有实例,除了出现在文本末尾的情况。
preg_replace(PATTERN,'"\r\n"',$text)
在这种情况下如何指定 PATTERN?
【问题讨论】:
标签: php regex line-breaks carriage-return linefeed
使用preg_replace,我需要定义正则表达式PATTERN 以完全匹配换行符序列\r\n 的所有实例,除了出现在文本末尾的情况。
preg_replace(PATTERN,'"\r\n"',$text)
在这种情况下如何指定 PATTERN?
【问题讨论】:
标签: php regex line-breaks carriage-return linefeed
为行尾添加负前瞻:
preg_replace('/\r\n(?!$)/','"\r\n"',$text)
请注意,如果您没有特定要求匹配\r\n,您可以使用\R,它将匹配任何换行符序列。
【讨论】:
\r\n (DOS) 而不是任何其他类型的换行符序列,例如 \n (Unix)
\R 的评论。查看我的编辑
\R 的评论非常有用,我已经记下了它 - 您可能应该将该评论添加回答案中作为旁白,这可能是有用的事实未来的读者
\r\n(?!$) 不能选择它?