0

我有这个正则表达式,输出有点奇怪,当我回显电子邮件的正文时没有看到换行符但是

当我运行这个:

Message:(.*?)

它不是在 Message 之后返回所有内容,而是返回电子邮件的整个正文,就好像它忽略换行一样

所以我尝试了这个并且它有效

Message:(.*?)Issue

这捕获了从第一个关键字到最后一个关键字的所有内容,但是它还包括我不想要的问题的关键字,如何包含除问题之外的所有内容不包括?

此外,当我返回字符串时,我得到消息:这是一个测试\r

除了运行 str_replace 来删除它们之外,还有更好的方法吗?我有点像一个正则表达式处女:)

4

1 回答 1

2

使用积极的前瞻性

preg_match('/Message:(.*?)(?=Issue)/', 'Message: blah blah Issue', $matches);
print_r($matches);

印刷

Array
(
    [0] => Message: blah blah
    [1] =>  blah blah
)
于 2013-08-20T17:04:41.257 回答