一两个词后的正则表达式字符串

Regex string after one or two words

我尝试在一两个定义的单词之后获取最后一个字符串。这是我的实际正则表达式:

 /(?i)(?:(ticket|number))\.?\s?\:?\s*?([^\s]+)

我想从这个可能的列表中获取票号:

ticket number A2-177653     
ticket : A2-177653     
number 454544              

因此正则表达式可以有 "ticket" 或 "number" 或 "ticket number"

有人可以帮我吗?

谢谢

您可以使用

(?i)(?:ticket(?:\s+number)?|number)\.?\s?:?\s*(\S+)

regex demo

详情

  • (?i) - 不区分大小写的修饰符
  • (?:ticket(?:\s+number)?|number) - ticketnumberticket number
  • \.? - 一个可选的 .
  • \s?:?\s* - 一个可选的空格,一个可选的 :,然后是 0+ 个空格
  • (\S+) - 第 1 组:任何一个或多个非空白字符。