【发布时间】:2016-12-07 18:56:26
【问题描述】:
使用正则表达式匹配模式的最后一次出现
关于以下文字:
commit 5a254a0bfc0232bd838157cada953f87a7b6ffad
Merge: 2b9fcd8 a9b214e
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 11:54:08 2016 -0500
Merge branch 'master' of github.com:peterpan/testing
commit 2b9fcd8c10ee18ad2ea88190a3b10cc8affd4093
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 11:53:51 2016 -0500
KWP245
commit a9b214eb476e3d1f3896db31125d6e8108dca06d
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:40 2016 -0600
QZN0O5
commit a6be0abd17d3d6b1fdfe0711fe8e41a28b092212
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:38 2016 -0600
QZN0O5
[编辑 1]
下面的文字我觉得比较笼统:
commit 5a254a0bfc0232bd838157cada953f87a7b6ffad
Merge: 2b9fcd8 a9b214e
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 11:54:08 2016 -0500
Merge branch 'master' of github.com:peterpan/testing
commit 2b9fcd8c10ee18ad2ea88190a3b10cc8affd4093
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 11:53:51 2016 -0500
KWP245
commit a9b214eb476e3d1f3896db31125d6e8108dca06d
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:40 2016 -0600
QZN0O5
commit a6be0abd17d3d6b1fdfe0711fe8e41a28b092212
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:38 2016 -0600
QZN0O5
commit bb2762bd17d3d6b1fdfe0711fe8e41a28b092212
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:38 2016 -0600
H82LKJ
commit aa72dfeb476e3d1f3896db31125d6e8108dca06d
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:40 2016 -0600
我想从提交词中捕获带有“QZN0O5”的最后一个文本块。
commit a9b214eb476e3d1f3896db31125d6e8108dca06d
Author: Peter Pan <peterpan@gmail.com>
Date: Wed Dec 7 10:52:40 2016 -0600
QZN0O5
我的意思是第一次提交带有文本QZN0O5。
我试过了:
preg_match("/(?<!commit).*?QZN0O5/is", $text, $matches);
但没有成功。
实际上我想捕获提交代码:
a9b214eb476e3d1f3896db31125d6e8108dca06d更具体。如果您对此有解决方案,那就更好了。
知道如何匹配该文本吗?
【问题讨论】:
-
全部匹配,得到数组的最后一项。
-
我只得到一个大火柴而不是多个小火柴。
标签: php regex preg-match preg-match-all