如何用正则表达式python抓住//?

时间:2014-06-26 04:00:30

标签: python regex

为什么这不起作用?在正则表达式查找器中,它匹配。我正试图抓住字符串中的.//

pat = '[\.\/]+(?!(docx|doc|pdf))'
bad = re.compile(pat)
bad.findall(tails[1])

print tails[1]
".//2005 Neuropathophys.doc"

此模式似乎适用于正则表达式匹配器网站http://regex101.com/

enter image description here

2 个答案:

答案 0 :(得分:0)

您的正则表达式将与.//docxdoc后跟pdf匹配,

\.//(?!docx|doc|pdf)

DEMO

答案 1 :(得分:0)

在这种情况下,我认为您\中不需要[]。我认为\仅用作转义字符。但您不需要在Python正则表达式\中使用[]。因为字符会在[]中自动转义。

因此请使用regexp [./]+代替[\.\/]+

<强>样品:

>>> import re
>>> s = ".//2005 Neuropathophys.doc"
>>> re.match("[./]+", s).group()
'.//'