验证Python中一个字符串中存在多少对括号
我想知道是否有办法找出一个字符串中有多少对括号 我必须做一些字符串操作,有时我会做如下操作: some_字符串='1.8.0*99000000*kWh' 或者类似的 一些字符串='1.6.1*01007.717*kW1604041815' 我想做的是: 获取括号之间的所有数字,例如第一个字符串:0000000 如果有2对括号,则最多2对获取所有数字并将它们连接起来,例如,对于第二个字符串,我将有:0077171604041815 如何验证一个字符串中有多少对括号,以便稍后执行以下操作:验证Python中一个字符串中存在多少对括号,python,regex,string,python-3.x,Python,Regex,String,Python 3.x,我想知道是否有办法找出一个字符串中有多少对括号 我必须做一些字符串操作,有时我会做如下操作: some_字符串='1.8.0*99000000*kWh' 或者类似的 一些字符串='1.6.1*01007.717*kW1604041815' 我想做的是: 获取括号之间的所有数字,例如第一个字符串:0000000 如果有2对括号,则最多2对获取所有数字并将它们连接起来,例如,对于第二个字符串,我将有:0077171604041815 如何验证一个字符串中有多少对括号,以便稍后执行以下操作: if n
if number_of_pairs == 1:
do_this
else:
do_that
或者,也许有一个更简单的方法来做我想做的事,但目前还想不出一个
我知道如何只获取字符串中的数字:final_string=re.sub“[^0-9]”,我的字符串,但我想知道如何处理这两种情况。因为括号总是成对出现,所以只要数一数字符串中的左括号或右括号,就可以得到答案
num_of_parenthesis = string.count('(')
因为括号总是成对出现的,所以只要数一数字符串中的左括号或右括号,就可以得到答案
num_of_parenthesis = string.count('(')
如果要将所有数字放在一个字符串中,请在替换任何数字后使用re.findall。并加入一个字符串:
In [15]: s="'1.6.1*01(007.717*kW)(1604041815)'"
In [16]: ("".join(re.findall("\((\d+).*?\)", s.replace(".", ""))))
Out[16]: '0077171604041815'
In [17]: s = '1.8.0*99(0000000*kWh)'
In [18]: ("".join(re.findall("\((\d+).*?\)", s.replace(".", ""))))
Out[18]: '0000000'
当您只想提取其中的任何数字时,paren的计数是不相关的。基于您最多只有两对的事实,我认为格式是一致的
或者,如果参数始终有数字,请在参数中查找数据,并在所有栏中添加数字:
In [20]: "".join([re.sub("[^0-9]", "", m) for m in re.findall("\((.*?)\)", s)])
Out[20]: '0077171604041815'
如果要将所有数字放在一个字符串中,请在替换任何数字后使用re.findall。并加入一个字符串:
In [15]: s="'1.6.1*01(007.717*kW)(1604041815)'"
In [16]: ("".join(re.findall("\((\d+).*?\)", s.replace(".", ""))))
Out[16]: '0077171604041815'
In [17]: s = '1.8.0*99(0000000*kWh)'
In [18]: ("".join(re.findall("\((\d+).*?\)", s.replace(".", ""))))
Out[18]: '0000000'
当您只想提取其中的任何数字时,paren的计数是不相关的。基于您最多只有两对的事实,我认为格式是一致的
或者,如果参数始终有数字,请在参数中查找数据,并在所有栏中添加数字:
In [20]: "".join([re.sub("[^0-9]", "", m) for m in re.findall("\((.*?)\)", s)])
Out[20]: '0077171604041815'
你可以这样做:假设你已经知道至少有一个括号
或仅使用re.sub:
你可以这样做:假设你已经知道至少有一个括号
或仅使用re.sub:
s=some_string.count+some_string.count/2嵌套括号怎么样?如果你想用Python正则表达式来处理它们,那真的很有趣……澄清一下:没有必要验证正确的嵌套,因为这不是一种常规语言?不会有任何嵌套的括号^ ^ ^在这种情况下必须得到什么结果:toto或toto,这些类型的字符串可能吗?s=some_string.count+some_string.count/2嵌套括号怎么样?如果你想用Python正则表达式来处理它们,那真的很有趣……澄清一下:没有必要验证正确的嵌套,因为这不是一种常规语言?不会有任何嵌套的括号^ ^ ^在这种情况下必须得到什么结果:toto或toto,这些类型的字符串可能吗?如果存在不匹配括号的风险,您也可以计算字符串中存在多少括号来处理这些情况…@arewm不会有任何风险,因为在正确的表达式中,括号总是成对出现。我同意,如果有正确的表达式,风险不会很大。我提出这个建议是因为在我们知道表达式是正确的之前,可以进行此检查,从而为您提供优雅的错误处理机会。这里可能不相关,但只是提醒其他人以后可能会看到。如果存在不匹配括号的风险,您还可以计算字符串中存在多少括号来处理这些情况…@arewm不会有任何风险,因为在正确的表达式中,括号总是成对出现的。我同意,如果表达式正确,风险不大。我提出这个建议是因为在我们知道表达式是正确的之前,可以进行此检查,从而为您提供优雅的错误处理机会。可能与此无关,但只是提醒未来可能会关注的其他人。