【发布时间】:2023-01-26 22:27:55
【问题描述】:
我有这个正则表达式 have (?=(an|the) agreement) 来查找“有一个/协议“,但我想捕捉”有协议“以及。我怎样才能实现它?
【问题讨论】:
标签: php regex regex-group
我有这个正则表达式 have (?=(an|the) agreement) 来查找“有一个/协议“,但我想捕捉”有协议“以及。我怎样才能实现它?
【问题讨论】:
标签: php regex regex-group
【讨论】:
您的正则表达式既不匹配“有协议”也不匹配“有协议”,如果后面跟着“一个”或“该”,则只匹配“有”。
满足您所有需求的适当正则表达式是
have (?:(?:an|the) )?agreement
你有两个非捕获组(以(?:开头):
(?:an|the)匹配“an”或“the”,(?:(?:an|the) )匹配内部组加上一个空格
外部非捕获组本身是完全可选的,在它后面用 ? 标记,所以你也可以只是“同意”——两个词之间只有一个空格。
【讨论】: