正则表达式斜线捕获python

时间:2016-04-18 15:06:37

标签: regex

我正在尝试匹配rootroot/more,而不是rootsroot/

我尝试了re.match('/root?(/.*)',line),但得到root/而不是root

1 个答案:

答案 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