匹配字符,包括换行符和回程车厢


Matching characters including line breaks and return carriages

>我有这个特定的文本行和客户提交,并且该行在 65 个字符处自动断开,我需要修改我的正则表达式以查找更多额外的行、回车或换行符,直到第一个标点符号,例如 .,!,?

匹配的行的示例:

Snippet: It's time again for the Annual State Marching Event, This Saturday at 5pm.

上面的行超过 65 个字符,有时行是这样的

Snippet: It's time again for the Annual State Marching Event, This 
Saturday at 5pm.

显示为Event, This'r'n这是我使用的正则表达式:

preg_match('/Snippet:('s)?+(.*)'./i', $html_part, $matches) ? $matches[2] : '';

我试过用我的韩元来逃避标点符号,但没有运气。任何帮助将不胜感激。提前谢谢。

尝试使用 s 修饰符,如下所示:

/Snippet:('s)?+(.*)'./is

如果设置了此修饰符,则模式中的点元字符匹配 所有字符,包括换行符。没有它,换行符将被排除在外。 这个修饰符等效于 Perl 的/s 修饰符。负类 例如 [^a] 始终匹配换行符,与 此修饰符的设置。

演示