Как найти информацию между двумя словами, исключая пробелы, с помощью python re?

Привет, я пытаюсь разработать сценарий с использованием Python, который определяет, есть ли что-то между двумя словами. Для этого я использую регулярное выражение r'Madrid:(.*?)Newyork':

import re

string_1 = "Madrid: good bars Newyork: good building Warranty: No"
pattern = r'Madrid:(.*?)Newyork'
searchObj = re.search(pattern, string_1, re.I)
if searchObj:
        return True
    else:
        return False

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

string_2 = "Madrid: Newyork: good building Warranty: No"
string_3 = "Madrid:      Newyork: good building Warranty: No"

Я пытаюсь использовать [^\s], но не работает, есть помощь?

1
0
38
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать это регулярное выражение:

reg = r'Madrid:(.*?\S.*?)Newyork'

Демо RegEx

\S в середине гарантирует, что вы не сопоставляете все пробелы между начальной и конечной строками.

Без использования другого регулярного выражения вы можете удалить все пробелы:

searchObj = re.search(pattern, string_1.replace(" ", ""), re.I)

Другие вопросы по теме