python正则表达式忽略下划线错误

时间:2015-05-01 14:17:09

标签: python regex

我正试图从结尾列表中获取文件名,如下所示:

final count: {'.pem': 5027, '__base__': 434, '.rb': 62341, '/AUTHORS': 1358, '.sty': 859, '.gitignore': 193,...}

我的正则表达式如下:

p = re.compile(r"'([\W]+)(.*?)'")

除了'__base__'之外,它可以正常工作,我在'__base__'而不是p = re.compile(r"'([\W]+|\_+)(.*?)'") p = re.compile(r"'([\W]+|_+)(.*?)'") 而不是基数'我希望由于下划线是一个像字的字符。我试过了:

p = re.compile(r"'([\W]+)|(_+)(.*?)'")

.apk

但没有效果。这样做的正确方法是什么?谢谢

2 个答案:

答案 0 :(得分:2)

尝试添加克拉以对正则表达式进行例外处理

p = re.compile(r"'([\W^_]+)(.*?)'")

^ 匹配组(方括号)时,它表示字符串的开头或新行的开头。当它在里面匹配的组时,它意味着"否定"或者"不是"。

答案 1 :(得分:1)

p = re.compile(r"'([^a-zA-Z0-9]+)(.*?)'")

你可以简单地使用它。