Я только начинаю с регулярного выражения в python, и мне интересно, если *
i.e соответствие чему-то 0 или более раз имеет полезность в практических ситуациях или нет. Незлая помощь. ThanksПрактическое использование для сопоставления 0 или более раз в regex (*)
-3
A
ответ
1
Представьте, что у вас есть подстрока с фиксированными начальными и конечными элементами, которые могут быть разделены только конкретными разделителями. Например: "cat-cow"
, и у вас может быть много собак между ними или нет. Например: cat-dog-dog-cow
, но вы не хотите видеть других животных между ними: cat-horse-cow
неверен. Таким образом, вы можете использовать регулярное выражение как r'cat-(dog-)*cow'
:
import re
>>> re.match(r'cat-(dog-)*cow', 'cat-cow') is not None
True
>>> re.match(r'cat-(dog-)*cow', 'cat-dog-cow') is not None
True
>>> re.match(r'cat-(dog-)*cow', 'cat-horse-cow') is not None
False
>>>
>>> re.search(r'cat-(dog-)*cow', 'cat-dog-dog-dog-cow') is not None
True
+0
О да! Имеет смысл. Благодарю. – 0Nicholas
У вас есть конкретный вопрос об этом? –
Конечно, для этого есть много практических применений. Обычное использование - это то, где пробелы необязательны: вы хотите совместить 0 и более пробелов ... – Carpetsmoker
Определенно согласен с пробелом. '*' был полезен много, много раз для меня. – drew010