Trying To Find The Regex For This Particular Case? Also Can I Parse This Without Creating Groups?
text to capture looks like this..   Policy Number    ABCD000012345    other text follows in same line....  My regex looks like this  regex value='(?i)(?:[P|p]olicy\s[N|n]o[|:|;|,][
Solution 1:
You may use a more simple regex, just finding from the beginning "[P|p]olicy\s*[N|n]umber\s*\b([A-Z]{4}\d+)\b.*" and use the word boundary \b
pattern = re.compile(r"[P|p]olicy\s*[N|n]umber\s*\b([A-Z0-9]+)\b.*")
line = "Policy Number    ABCD000012345    other text follows in same line...."
matches = pattern.match(line)
id_res = matches.group(1)
print(id_res)  # ABCD000012345And if there's always 2 words before you can use (?:\w+\s+){2}\b([A-Z0-9]+)\b.*
Also \s is for [\r\n\t\f\v ] so no need to repeat them, your [\n\r\s\t] is just \s
Solution 2:
you don't need the upper and lower case p and n specified since you're already specifying case insensitive.
Also \s already covers \n, \t and \r.
(?i)policy\s+number\s+([A-Z]{4}\d+)\bfor verification purpose: Regex
Another Answer :
^[\s\w]+\b([A-Z]{4}\d+)\bfor verification purpose: Regex
I like this better, in case your text changes from policy number
Post a Comment for "Trying To Find The Regex For This Particular Case? Also Can I Parse This Without Creating Groups?"