Regex可以获取除括号之间的字符串以外的所有内容

Regex可以获取除括号之间的字符串以外的所有内容,regex,string,Regex,String,从该字符串: asdfhjlfbvj(1dszfkl)asdfjklugnnbcvklbc(2adfsfhj)fklajsdflkjasdf(3asdf)bvcxv 为此: \\(.*?\\) 您得到(1dszfkl)、(2adfsfhj)和(3asdf) 如何获取asdfhjlfbvj、asdfjklugnbcvklbc、fklajsdflkjasdf和bvcxv 谢谢 将非括号字符与(或字符串结尾的前向查找相匹配: [^()]+(?=\(|$) 或者,如果您可以使用\K,为了提高效率

从该字符串:

asdfhjlfbvj(1dszfkl)asdfjklugnnbcvklbc(2adfsfhj)fklajsdflkjasdf(3asdf)bvcxv
为此:

\\(.*?\\)
您得到(1dszfkl)、(2adfsfhj)和(3asdf)

如何获取asdfhjlfbvj、asdfjklugnbcvklbc、fklajsdflkjasdf和bvcxv


谢谢

将非括号字符与
或字符串结尾的前向查找相匹配:

[^()]+(?=\(|$)

或者,如果您可以使用
\K
,为了提高效率,请匹配括号和括号中包含的内容,然后使用
\K
忘记:

(?:\([^)]+\)\K)?[^(]+

我不知道第二个,在网站上工作,它在python中不起作用(甚至是scaping字符):(?:\([^)]+\\K)?[^\(]+它只显示:['asdfhjlfbvj','1dszfkl)asdfjkluncbcvklbc','2dfsfhj)fklajsdflkjasdf','3asdf)bvcxv']导入re=r'(?:\([^)([^)]+\\K)?[^\([^+'m=re.findall(regex,line)print-mPython的原生
re
模块不支持
\K
——为此,您必须使用Pypi的regex模块。