例如,我有一个文件名[foo] FooBar[!].bar
如何使用正则表达式匹配FooBar
但不匹配[foo]
,[!]
或.bar
顺便说一句,我正在使用 Python Regex,如果这有任何影响的话。
基本上,我想匹配不在点之后或不在括号中的任何内容。
fileName = '[abc][def]Real Name[!].exe'
name = re.search('(\[[^]]*\])*([\w\s]+)', fileName).group(2)
print name
这应该打印“真实姓名”
(?:^|])(?!\.)([\w\s]+)(?:\[|$)'
]
这应该匹配任何由and或开始和结束字符串包围的单词+空格组合,并且[
前面没有点。
你可以全部替换:
>>> re.sub(r'\[.*?\]|\..*', '', '[foo] FooBar[!].bar')
' FooBar'