Python 3 How to get string between two points using regex?

后端 未结 2 1134
悲&欢浪女
悲&欢浪女 2020-12-15 12:54

How to get the string between two points using regex or any other library in Python 3?

For eg: Blah blah ABC the string to be retrieved XYZ Blah Blah

ABC and

相关标签:
2条回答
  • 2020-12-15 13:37

    Use ABC and XYZ as anchors with look-behind and look-ahead assertions:

    (?<=ABC).*?(?=XYZ)
    

    The (?<=...) look-behind assertion only matches at the location in the text that was preceded by ABC. Similarly, (?=XYZ) matches at the location that is followed by XYZ. Together they form two anchors that limit the .* expression, which matches anything.

    You can find all such anchored pieces of text with re.findall():

    for matchedtext in re.findall(r'(?<=ABC).*?(?=XYZ)', inputtext):
    

    If ABC and XYZ are variable, you want to use re.escape() (to prevent any of their content from being interpreted as regular expression syntax) on them and interpolate:

    re.match(r'(?<={}).*?(?={})'.format(abc, xyz), inputtext)
    
    0 讨论(0)
  • 2020-12-15 13:46

    I think this is what you want:

    import re
    match = re.search('ABC(.*)XYZ','Blah blah ABC the string to be retrieved XYZ Blah Blah')
    print match.group(1)
    
    0 讨论(0)
提交回复
热议问题