Gee*_*_SO 2 python regex string
对于含糊不清的标题表示道歉,但我不知道如何用一句话来理解我的问题.
所以我有一些简单的正则表达式代码来提取括号之间的代码.
^.*\((.*)\).*
Run Code Online (Sandbox Code Playgroud)
这可以在Python中成功使用以下代码.
m = re.search( "^.*\((.*)\).*" ,input)
if m:
print(m.groups()[0])
Run Code Online (Sandbox Code Playgroud)
当一个右括号)可能在最外面的括号内时,我的问题出现了.例如,我给出的当前代码
nsfnje (19(33)22) sfssf
Run Code Online (Sandbox Code Playgroud)
作为输入将返回
19(33
Run Code Online (Sandbox Code Playgroud)
但我希望它能回来.
19(33)22
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题,所以任何帮助都将不胜感激!
>>> input = "nsfnje (19(33)22) sfssf"
>>> re.search( "\((.*)\)" ,input).group(1)
'19(33)22'
Run Code Online (Sandbox Code Playgroud)
请注意,这会搜索最外面的括号,即使它们是不平衡的(例如"(1(2)))))").使用单个标准正则表达式搜索平衡括号是不可能的.有关更多信息,请参阅此答案.