如何获取python中子串指定范围内的数字?
How to get a number within a specified range of a substring in python?
−3.7% [95% CI, −10.2% 至 2.7%]; P = .26)
以上是我正在使用的字符串示例,但我想获取字符串中的所有数字及其分类器,即减号(如果为负数)、% 和小数点。
此字符串可以更改,但此字符串的模式是一致的:
主要测量值%[置信区间%CI,CI低端%至CI高端%]; P=P值)
目前我正在使用一种代码,该代码基于相对于子字符串“CI”和“P=”的特定索引提取数字来提取此数据,但它不是 100% 可靠,因为另一个字符串可能有不同的数字位数,可能有也可能没有负数,这意味着对索引号进行硬编码不会提取正确的值。
不同字符串的示例:
10.7% [95% CI, 1.2% 至 12.7%]; P = .1)
我希望能够将数值分配给以下变量,包括任何负号、数字的不同位数、% 符号和小数符号。
所需的字符串和输出示例:
string_1 = "10.7% [95% CI, 1.2% to 12.3%]; P = .1)"
期望输出
主要测量值是 10.7%
CI 下限为 1.2%
CI 高端为 12.3%
P值为.1
string_2 = "−3.7% [95% CI, −10.2% to 2.7%]; P = .26)"
期望输出
主要测量值为 -3.7%
CI 下限为 -10.2%
CI 上限为 2.7%
P 值为 .26
如果所有字符串都遵循相同的模式,是否有动态方法来获取上述变量的预期值?
编辑:好吧,这里有一个更好的解决方案,使用单个正则表达式调用
import re
s = "−3.7% [95% CI, −10.2% to 2.7%]; P= .26)"
values = re.findall(r'([−.%\d]+)', s)
我使用正则表达式模块来提取所需输出的值。结果是包含您的值的字符串列表。
然后你可以做类似print('Primary Measure Value is', values[0])
等的事情
−3.7% [95% CI, −10.2% 至 2.7%]; P = .26)
以上是我正在使用的字符串示例,但我想获取字符串中的所有数字及其分类器,即减号(如果为负数)、% 和小数点。
此字符串可以更改,但此字符串的模式是一致的:
主要测量值%[置信区间%CI,CI低端%至CI高端%]; P=P值)
目前我正在使用一种代码,该代码基于相对于子字符串“CI”和“P=”的特定索引提取数字来提取此数据,但它不是 100% 可靠,因为另一个字符串可能有不同的数字位数,可能有也可能没有负数,这意味着对索引号进行硬编码不会提取正确的值。
不同字符串的示例:
10.7% [95% CI, 1.2% 至 12.7%]; P = .1)
我希望能够将数值分配给以下变量,包括任何负号、数字的不同位数、% 符号和小数符号。
所需的字符串和输出示例:
string_1 = "10.7% [95% CI, 1.2% to 12.3%]; P = .1)"
期望输出
主要测量值是 10.7%
CI 下限为 1.2%
CI 高端为 12.3%
P值为.1
string_2 = "−3.7% [95% CI, −10.2% to 2.7%]; P = .26)"
期望输出
主要测量值为 -3.7%
CI 下限为 -10.2%
CI 上限为 2.7%
P 值为 .26
如果所有字符串都遵循相同的模式,是否有动态方法来获取上述变量的预期值?
编辑:好吧,这里有一个更好的解决方案,使用单个正则表达式调用
import re
s = "−3.7% [95% CI, −10.2% to 2.7%]; P= .26)"
values = re.findall(r'([−.%\d]+)', s)
我使用正则表达式模块来提取所需输出的值。结果是包含您的值的字符串列表。
然后你可以做类似print('Primary Measure Value is', values[0])
等的事情