有很多捕获单词的示例(如果未在某些关键字之前)。我试图捕获括号内的所有数字组,但前提是它前面带有“未分配”字样
Job is not allocated to your organization (83) vs (1098), please contact support
这是主题行。我想同时捕获“ 83”和“ 1098”,但前提是在任何捕获组之前都出现“未分配”字样。
A想在后面使用回溯功能?后退和捕获组之间不能使用量词:-
(?<=not allocated)?\((\d+)\)
非常感谢您的协助。表达式必须与PCRE(PHP)兼容。
答案 0 :(得分:0)
在模式的开头,匹配not allocated
,或者将上一个匹配的结尾与\G
匹配。您还可以通过使用\K
并让)
提前将完全匹配作为匹配的数字子字符串,从而使捕获组不再需要:
(?:(?!^)\G|not allocated).*?\(\K\d+(?=\))
https://regex101.com/r/DboPrU/2
需要对^
进行否定的前瞻,以确保\G
也与字符串的开头不匹配。