Search code examples
javapythonphpregexregex-group

Regex string after one or two words


I try to get last string after one or two defined words. This is my actual Regex:

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

And I want to get the ticket number from this list of possibilities:

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

Therefore the regex can have "ticket" or "number" or "ticket number"

Can anybody help me?

Thanks


Solution

  • You may use

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

    See the regex demo

    Details

    • (?i) - case insensitive modifier
    • (?:ticket(?:\s+number)?|number) - ticket, number or ticket number
    • \.? - an optional .
    • \s?:?\s* - an optional whitespace, an optional : and then 0+ whitespaces
    • (\S+) - Group 1: any one or more non-whitespace chars.