Как распечатать подстроку между двумя "|" в python? - PullRequest
2 голосов
/ 24 апреля 2020

Я пытаюсь получить подстроку (пробелы, "." И 1) между двумя "|".

Я попробовал следующий код:

f = open('test.txt', 'r')

with f:
    data = f.read()
    for line in data.splitlines():
        if line.startswith('Y='):
            m = re.search('| (.+?) |', line)
            if m:
                found = m.group(1)
            print(found)

Но единственное, что было распечатано, было «Нет».

Текст внутри test.txt :

trying to read this text

1 Ответ

3 голосов
/ 24 апреля 2020

Трубка | - это специальный символ в регулярных выражениях.

Вы можете рассматривать их как простые символы, заключая их в квадратные скобки или экранируя их.

m = re.search('[|] (.+?) [|]', line)
# or 
m = re.search(r'\| (.+?) \|', line)

Теперь это должно работать, как вы хотели.

...