用正则表达式匹配两个字符串之间的文本

Car*_*ñiz 17 python regex python-2.x

我想使用匹配两个字符串之间的任何文本的正则表达式:

Part 1. Part 2. Part 3 then more text
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想搜索"第1部分"和"第3部分",然后获得介于两者之间的所有内容:".第2部分".

我正在使用Python 2x.

Avi*_*Raj 32

使用 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. '
Run Code Online (Sandbox Code Playgroud)

或使用re.findall,如果有多个出现.

  • 请注意,所需的答案是 `". Part 2. "`,因此正则表达式应为 r'Part 1(.*?)Part 3'。看我的回答就爆了。 (3认同)
  • 感谢您的回答,但这与换行符不匹配。 (3认同)

lor*_*. j 10

使用正则表达式:

>>> import re
>>> s = 'Part 1. Part 2. Part 3 then more text'
>>> re.search(r'Part 1(.*?)Part 3', s).group(1)
'. Part 2. '
Run Code Online (Sandbox Code Playgroud)

没有正则表达式,此示例适用于您的示例:

>>> 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. '
Run Code Online (Sandbox Code Playgroud)