在正则表达式中匹配0次或更多次的实际用法(*)

时间:2016-03-16 06:53:57

标签: python regex

我刚开始使用python中的正则表达式,我想知道*即匹配0次或更多次的东西是否在实际情况下具有实用性。请帮助。 感谢

1 个答案:

答案 0 :(得分: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