【问题标题】:Returning values from multiple options in Regex从正则表达式中的多个选项返回值
【发布时间】:2014-05-28 14:09:20
【问题描述】:

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

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

http://regex101.com/r/xR0uA9

到目前为止,它的行为符合我的预期,因为它会在限定表达式之前找到该术语的第一个匹配项。但是理想情况下,我希望每个人都返回,换句话说,一旦匹配就不会退出正则表达式。我意识到如果我只有一个选项,我可以做 /1/2 来获得多个匹配到一个选项,但在这种情况下,我会尝试让多个匹配到不同的选项。

【问题讨论】:

  • 您使用什么语言?在PHP中你需要使用preg_match_all,在其他语言中你需要使用global修饰符。

标签: regex


【解决方案1】:

尝试将g 放入您可以在正则表达式右侧看到的修饰符框中

【讨论】:

  • +1 获得漂亮的全小写答案。 :) 顺便说一句,这不是g 一个可爱的 regex101 怪癖吗?因为它不是一个通用的正则表达式修饰符,所以对于 php 头来说它可能感觉就像一个复活节彩蛋。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2022-01-23
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多