Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式不匹配括号中的任何内容,只匹配字母、数字和空格,点后不匹配任何内容_Python_Regex - Fatal编程技术网

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跳过括号([和])内的所有单词,然后返回下一个单词,直到找到与字母、数字、空格或下划线不同的字符。