python – 如何查找不在括号中的字符

试图找到所有出现的字符

string1 = '%(example_1).40s-%(example-2)_-%(example3)s_'

所以输出中出现的所有’ – ”_’都不在括号中

['-', '_', '-', '_']

不需要关心嵌套括号

最佳答案 以下将为您提供输出:

>>> import re
>>> str = '%(example_1).40s-%(example-2)_-%(example3)s_'
>>> print list("".join(re.findall("[-_]+(?![^(]*\))", str)))
['-', '_', '-', '_']

这样做是因为它在str中找到包含’ – ‘和/或’_’的所有子串,而不是在括号中.由于这些是子字符串,我们通过连接和分割成列表来获得所有这些匹配字符.

点赞