web-dev-qa-db-ja.com

正規表現を使用して2つの文字列間でテキストを一致させる

2つの文字列の間のテキストに一致する正規表現を使用したいと思います。

Part 1. Part 2. Part 3 then more text

この例では、「パート1」と「パート3」を検索し、「。パート2」の間にあるすべてのものを取得します。

私はPython 2x。

14
Carlos Muñiz

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を使用します。

29
Avinash Raj

正規表現の場合:

>>> 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. '
9
lord63. j