正则表达式不匹配括号中的任何内容,只有字母,数字和空格,并且点后面没有任何内容

时间:2013-03-10 01:17:44

标签: python regex

例如,我有一个文件名[foo] FooBar[!].bar

如何使用正则表达式匹配FooBar,而不是[foo][!].bar

BTW,我正在使用Python Regex,如果它有任何影响。

基本上,我希望匹配不在点之后或不在括号中的任何内容。

3 个答案:

答案 0 :(得分:2)

fileName = '[abc][def]Real Name[!].exe'
name = re.search('(\[[^]]*\])*([\w\s]+)', fileName).group(2)
print name

这应该打印'真实姓名'

答案 1 :(得分:0)

(?:^|])(?!\.)([\w\s]+)(?:\[|$)'

这应匹配由][包围的任何单词+空格组合,或者以字符串开头和结尾,并且前面没有点。

答案 2 :(得分:0)

你可以全部替换:

>>> re.sub(r'\[.*?\]|\..*', '', '[foo] FooBar[!].bar')
    ' FooBar'