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