Python是否有一种方法可以计算字符串中插入的字符串的数量?

时间:2020-03-23 22:44:14

标签: python string

假设我们在python中有一个字符串,例如

'f"{var_1} is the same as {var_2}"'

或类似

"{} is the same as {}".format(var_1, var_2)

是否有一种方法可以计算字符串中存在的插入字符串的数量?

我正在尝试创建一个函数,该函数计算字符串中的插入次数。这是因为我有用于生成中间名的代码,它可以生成2或1个中间名,并且只是为了保持代码的一致性,我宁愿它计算字符串中存在的插入次数。

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

import re

s = 'f"{var_1} is the same as {var_2}"'

len(list(re.finditer(r'{.+?}', s)))

输出:

2

答案 1 :(得分:0)

在简单的情况下,您只需算出大括号的数量即可

nsubst = "{var_1} is the same as {var_2}".count("{")

对于复杂的情况,这是行不通的,并且没有简单的解决方案,因为您需要执行格式语法的完整解析器或处理很多特殊情况(问题是例如在字段中使用大括号或嵌套字段替换)格式规格)。此外,对于f-string而言,您可以将相当多的有效python表达式的子集作为字段,包括文字嵌套字典,而且事情甚至更复杂。