Выражение регулярного выражения для поиска строк между двумя строками в Python - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь написать регулярное выражение, которое возвращает строку, которая находится между двумя другими строками.Например: я хочу получить строку вместе с пробелами, находящимися между строками "15/08/2017" и "610 000 $"

a='172 211 342    15/08/2017  TRANSFER OF LAND   $610,000        CASH & MTGE'

должно возвращаться

"TRANSFER OF LAND"

Вотвыражение, которое я сложил до сих пор:

re.search(r'15/08/2017(.*?)$610,000', a).group(1)

Это не возвращает совпадений.Я думаю, что это потому, что мы также должны учитывать пробелы в выражении.Есть ли способ найти строки между двумя строками, игнорируя пробелы?

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Может быть проще в использовании find:

a = '172 211 342 15/08/2017 TRANSFER OF LAND $610,000 CASH & MTGE'
b = '15/08/2017'
c = '$610,000'

a[a.find(b) + len(b):a.find(c)].strip()

'TRANSFER OF LAND'

0 голосов
/ 19 декабря 2018
>>> re.search(r'15/08/2017(.*)\$610,000',a).group(1)
'  TRANSFER OF LAND   '

Поскольку $ является метасимволом регулярных выражений (обозначающим конец логической строки), вам необходимо экранировать его для использования в качестве литерала '$'.

0 голосов
/ 19 декабря 2018

Использование Regex Lookbehind & Lookahead

Пример:

import re

a='172 211 342 15/08/2017 TRANSFER OF LAND $610,000 CASH & MTGE'
print(re.search(r"(?<=15/08/2017).*?(?=\$610,000)", a).group())

Выход:

 TRANSFER OF LAND 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...