0

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

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

顺便说一句,我正在使用 Python Regex,如果这有任何影响的话。

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

4

3 回答 3

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

这应该打印“真实姓名”

于 2013-03-10T01:28:40.270 回答
0
(?:^|])(?!\.)([\w\s]+)(?:\[|$)'

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

于 2013-03-10T01:30:26.437 回答
0

你可以全部替换:

>>> re.sub(r'\[.*?\]|\..*', '', '[foo] FooBar[!].bar')
    ' FooBar'
于 2013-03-10T01:33:24.717 回答