Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php正则表达式捕获后的文本_Php_Regex - Fatal编程技术网

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