Search code examples
pythonpython-re

Python regex to return characters after a search term


I'm trying to use regex to extract information from some strings

I can find the text using re.search, but how to get the information provided after the search term?

In the format Ref number ABC123456Ref date 01.01.2000 how can I return ABC123456 and 01.01.2000?

import re
reqd_info = "Ref number"
test_text = 'Ref number ABC123456Ref date 01.01.2000'
res = re.search(reqd_info, test_text)


Solution

  • You can use groups in your regular expression, then use re.findall to get a list of tuples containing the matched groups.

    In [1]: import re
    
    In [2]: test_text = 'Ref number ABC123456Ref date 01.01.2000'
    
    In [3]: re.findall("Ref number (.*)Ref date (.*)", test_text)
    Out[3]: [('ABC123456', '01.01.2000')]
    
    In [4]: [[number, date]] = re.findall("Ref number (.*)Ref date (.*)", test_text)
    
    In [5]: number
    Out[5]: 'ABC123456'
    
    In [6]: date
    Out[6]: '01.01.2000'