使用正则表达式匹配两个字符串之间的文本
Match text between two strings with regular expression
我想使用正则表达式来匹配两个字符串之间的任何文本:
Part 1. Part 2. Part 3 then more text
在此示例中,我想搜索 "Part 1" 和 "Part 3",然后获取介于两者之间的所有内容:“.第 2 部分。”
我正在使用 Python 2x。
使用re.search
>>> import re
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> re.search(r'Part 1\.(.*?)Part 3', s).group(1)
' Part 2. '
>>> re.search(r'Part 1(.*?)Part 3', s).group(1)
'. Part 2. '
或使用 re.findall
,如果出现不止一次。
使用正则表达式:
>>> import re
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> re.search(r'Part 1(.*?)Part 3', s).group(1)
'. Part 2. '
没有正则表达式,这个适用于您的示例:
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> a, b = s.find('Part 1'), s.find('Part 3')
>>> s[a+6:b]
'. Part 2. '
我想使用正则表达式来匹配两个字符串之间的任何文本:
Part 1. Part 2. Part 3 then more text
在此示例中,我想搜索 "Part 1" 和 "Part 3",然后获取介于两者之间的所有内容:“.第 2 部分。”
我正在使用 Python 2x。
使用re.search
>>> import re
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> re.search(r'Part 1\.(.*?)Part 3', s).group(1)
' Part 2. '
>>> re.search(r'Part 1(.*?)Part 3', s).group(1)
'. Part 2. '
或使用 re.findall
,如果出现不止一次。
使用正则表达式:
>>> import re
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> re.search(r'Part 1(.*?)Part 3', s).group(1)
'. Part 2. '
没有正则表达式,这个适用于您的示例:
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> a, b = s.find('Part 1'), s.find('Part 3')
>>> s[a+6:b]
'. Part 2. '