我正在寻找一种方法来获取在字符串中找到的所有类似换行符的字符序列。我正在尝试使用 preg_match() 如下:
preg_match('/^[^\r\n]*(?:([\r\n]+)|[^\r\n]*)+$/', $input_text, $matches);
但我似乎只得到了最后一场这样的比赛。我觉得解决方案可能涉及使用 \G,但是当我尝试引入它时,匹配完全失败。我认为我不了解如何正确使用它或它应该去哪里。
我意识到我的模式将按顺序匹配多个换行符(即,空行导致单个匹配中的多个换行符)。这就是我要的。
例如,对于字符串:
"ABC\nDEF\r\n\rGHI\n\n\r\n",
我想得到:
[ "\n", "\r\n\r", "\n\n\r\n" ]
感谢您的任何帮助。
回答1
利用
preg_match_all('/\R+/u', "ABC\nDEF\r\n\rGHI\n\n\r\n", $matches);
它返回所有行结束序列,因为 \R+
匹配一个或多个行结束序列。