Regex 从正则表达式中的多个选项返回值

Regex 从正则表达式中的多个选项返回值,regex,Regex,我只在文本块中搜索被其他“限定”术语包围的特定术语。我制作了一个正则表达式,其中每个符合条件的条款都是一个选项: (?<QUALIFY_A>(A\s(?<TERM>(Hi|Bye)))|(?<QUALIFY_B>B\s(?<TERM1>(Hi|Bye)))|(?<QUALIFY_C>C\s(?<TERM2>(Hi|Bye)))) (?(A\s(?(嗨,再见)))(B\s(?(嗨,再见)))(C\s(?(嗨,再见)))

我只在文本块中搜索被其他“限定”术语包围的特定术语。我制作了一个正则表达式,其中每个符合条件的条款都是一个选项:

(?<QUALIFY_A>(A\s(?<TERM>(Hi|Bye)))|(?<QUALIFY_B>B\s(?<TERM1>(Hi|Bye)))|(?<QUALIFY_C>C\s(?<TERM2>(Hi|Bye))))
(?(A\s(?(嗨,再见)))(B\s(?(嗨,再见)))(C\s(?(嗨,再见)))


到目前为止,它的行为与我预期的一样,因为它在前面有限定表达式时找到了术语的第一个匹配项。然而,理想情况下,我希望返回每一个,换句话说,不让正则表达式在匹配后退出。我意识到,如果我只有一个选项,我可以/1/2对一个选项进行多个匹配,但在这种情况下,我会尝试对不同的选项进行多个匹配。

尝试将
g
放在正则表达式右侧的修改器框中,您可以看到您使用的是什么语言?在PHP中,您需要使用
preg\u match\u all
,在其他语言中,您需要使用
global
修饰符顺便问一下,这不是regex101的一个可爱的怪癖吗?由于它不是一个通用的正则表达式修饰符,对于php来说,它可能感觉像一个复活节彩蛋。