Как заставить re.search искать несколько шаблонов? - PullRequest
0 голосов
/ 21 января 2019

Здравствуйте, сейчас читаю книгу о регулярных выражениях, и я застрял в этой задаче.

c) Сопоставьте строки, если они не содержат пробелов или строковую ошибку между строками qty и ценой

str1 = '23,qty,price,42'
str2 = 'qty price,oh'
str3 = '3.14,qty,6,errors,9,price,3'
str4 = 'qty-6,apple-56,price-234

Я выяснил, как проверить строки на предмет отсутствия пробелов и ошибок между кол-во и ценой, но я не могу объединить оба.

bool(re.search(r"^[^ ]+$",str1))
bool(re.search(r"(qty((?!error).)*price)",str1))

Мой вопрос: какre.search должно выглядеть, если я хочу проверить оба требования?

1 Ответ

0 голосов
/ 21 января 2019

Проще написать регулярное выражение, которое соответствует, когда строка содержит либо, а затем инвертировать результат с помощью оператора not.

if not re.search(r"\s|qty.*error.*price", str1):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...