例如,我有一个文件名[foo] FooBar[!].bar
如何使用正则表达式匹配FooBar
,而不是[foo]
,[!]
或.bar
BTW,我正在使用Python Regex,如果它有任何影响。
基本上,我希望匹配不在点之后或不在括号中的任何内容。
答案 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'