我正在尝试匹配root
,root/more
,而不是roots
或root/
。
我尝试了re.match('/root?(/.*)',line)
,但得到root/
而不是root
。
答案 0 :(得分:2)
你可以使用这个锚定的正则表达式:
^root(/.+)?$
这将在root/
之后强制执行至少1个字符,或者它只匹配根,因为(/.+)?
后来部分可选。
<强>试验:强>
>>> print re.match('^root(/.+)?$', 'root')
<_sre.SRE_Match object at 0x1014bdcd8>
>>> print re.match('^root(/.+)?$', 'root/')
None
>>> print re.match('^root(/.+)?$', 'root/more')
<_sre.SRE_Match object at 0x1014bdcd8>
>>> print re.match('^root(/.+)?$', 'roots')
None