2016-03-16 4 views
-3

Я только начинаю с регулярного выражения в python, и мне интересно, если * i.e соответствие чему-то 0 или более раз имеет полезность в практических ситуациях или нет. Незлая помощь. ThanksПрактическое использование для сопоставления 0 или более раз в regex (*)

+4

У вас есть конкретный вопрос об этом? –

+4

Конечно, для этого есть много практических применений. Обычное использование - это то, где пробелы необязательны: вы хотите совместить 0 и более пробелов ... – Carpetsmoker

+0

Определенно согласен с пробелом. '*' был полезен много, много раз для меня. – drew010

ответ

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