Python 正则表达式不匹配括号中的任何内容,只匹配字母、数字和空格,点后不匹配任何内容
例如,我有一个文件名Python 正则表达式不匹配括号中的任何内容,只匹配字母、数字和空格,点后不匹配任何内容,python,regex,Python,Regex,例如,我有一个文件名[foo]FooBar[!]。bar 如何使用正则表达式匹配FooBar,而不是[foo]、[!]或.bar 顺便说一句,我使用的是Python正则表达式,如果这有什么关系的话 基本上,我想匹配任何不在点后或不在括号内的内容 fileName = '[abc][def]Real Name[!].exe' name = re.search('(\[[^]]*\])*([\w\s]+)', fileName).group(2) print name 这应该打印“真实姓名” (?
[foo]FooBar[!]。bar
如何使用正则表达式匹配FooBar
,而不是[foo]
、[!]
或.bar
顺便说一句,我使用的是Python正则表达式,如果这有什么关系的话
基本上,我想匹配任何不在点后或不在括号内的内容
fileName = '[abc][def]Real Name[!].exe'
name = re.search('(\[[^]]*\])*([\w\s]+)', fileName).group(2)
print name
这应该打印“真实姓名”
(?:^|])(?!\.)([\w\s]+)(?:\[|$)'
这应该匹配由
]
和[
或字符串开头和结尾包围的任何单词+空格组合,并且前面没有点。可以全部替换:
>>> re.sub(r'\[.*?\]|\..*', '', '[foo] FooBar[!].bar')
' FooBar'
(?![。])(?!\)[\w]+
是我尝试过的。它与[!]
不匹配,与[foo]
周围的括号和.bar
中的点不匹配,但会匹配其他一切我认为我们需要更多的样本输入和输出垃圾蛋[u].eggs
将匹配除括号字符本身和点字符以外的所有字符。我的周围环境已损坏。我需要能够做的不仅仅是[foo]FooBar[!].bar
请参见我的其他输入和修改question@ron975:有什么更具体的吗?这将切掉方括号中或点后的任何内容。还有一些示例垃圾邮件n鸡蛋[u]。鸡蛋应仅与“垃圾邮件n鸡蛋”匹配[helloworld]ABCXYZ[3]。abc
应仅与“ABCXYZ”匹配这将无法用于以下输入:'][a]“FooBar.txt”。我确实理解OP不够具体,但在添加新答案时,请确保它比当前答案更好,而不是更糟。我不只是在寻找“FooBar”,我在寻找任何不在括号内、不在点后面的内容。这似乎非常有效,非常感谢,但我可以问一下这是如何工作的吗@Ionut Hulubit跳过括号([和])内的所有单词,然后返回下一个单词,直到找到与字母、数字、空格或下划线不同的字符。