php正则表达式捕获后的文本
我有一个正则表达式:php正则表达式捕获后的文本,php,regex,Php,Regex,我有一个正则表达式: $pattern = '!(>+\h+)?(.*)schrieb:(.*?)!iUgs'; 相配 Daniel schrieb: > I think 这很有效。但当我有多个匹配目标时 Daniel schrieb: > I think Hi, Jessi schrieb: > I do test 第二场比赛将在最后一场比赛中结束,但应再次进行比赛(但整个后续比赛,包括第二场比赛,应在最后一场比赛中进行)。可能吗 我想抓住 1: Danie
$pattern = '!(>+\h+)?(.*)schrieb:(.*?)!iUgs';
相配
Daniel schrieb:
> I think
这很有效。但当我有多个匹配目标时
Daniel schrieb:
> I think
Hi,
Jessi schrieb:
> I do
test
第二场比赛将在最后一场比赛中结束,但应再次进行比赛(但整个后续比赛,包括第二场比赛,应在最后一场比赛中进行)。可能吗
我想抓住
1: Daniel
及
然后呢
1: Jesse
及
请参阅:您可以在PHP中使用此正则表达式:
~^(.*?)\h+schrieb:(?=((?s).*\z))~im
(?=((?s.*\z))
是一种先行断言,它执行先行断言并将文本分组在schrieb:
之后,直到文件结束
或更好-您期望的最终结果是什么?如这里所示:但它应该与“Jessi schrieb”等匹配。再次如之前一样,尝试将块置于双线中断之间。所有这些都不起作用,因为我想捕获“schrieb”之后的所有内容,因此需要捕获两次,也许这是不可能的我更新了我的问题来说明它太好了你救了我一天!
2:
> I do
test
~^(.*?)\h+schrieb:(?=((?s).*\z))~im