【发布时间】:2015-09-20 13:38:46
【问题描述】:
我想使用一个正则表达式来匹配两个字符串之间的任何文本:
Part 1. Part 2. Part 3 then more text
在本例中,我想搜索“第 1 部分”和“第 3 部分”,然后获取介于两者之间的所有内容:“。第 2 部分。”
我正在使用 Python 2x。
【问题讨论】:
标签: python regex python-2.x
我想使用一个正则表达式来匹配两个字符串之间的任何文本:
Part 1. Part 2. Part 3 then more text
在本例中,我想搜索“第 1 部分”和“第 3 部分”,然后获取介于两者之间的所有内容:“。第 2 部分。”
我正在使用 Python 2x。
【问题讨论】:
标签: python regex python-2.x
使用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,如果出现不止一次。
【讨论】:
". Part 2. ",所以正则表达式应该是 r'Part 1(.*?)Part 3'。请看我的回答。
带正则表达式:
>>> 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. '
【讨论】: