如何提取python字符串括号中的内容
作者:专攻数学的文科生
这篇文章主要介绍了如何提取python字符串括号中的内容问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
提取python字符串括号中的内容
一些数据按字符串保存,如str1 = '(1, 0.123) (2, 0.234)',当我们需要将字符串中的数据提取出来进行计算时,涉及只提出括号中的内容,此时可采取用Python re正则表达式模块和split()函数完成,操作过程略复杂。
有更简洁方法时再更新。
1. 首先用
re.findall(r'[(](.*?)[)]', str1)
将括号的内容提出来,结果是一个列表['1, 0.123', '2, 0.234']
2. 在用字符串分割函数将列表中每个值按', '分割,即split(', '),将分割后的每一项转换成数值类型。
整个例子如下:
python字符串中括号内提取数字
1. 使用字符串切片方式
str1 = '拥有(220755)人评价' # 将str1中数字部分提取出来 result = str1[3:9] 运行结果--->220755
注意:结果是可以提取出数字,不过这样的方式不具备灵活性。
例如当我字符串是'拥有(2207)人评价',以上代码就需要修改。这个方法显然不可行!
2. 使用filter函数
str1 = '拥有(220755)人评价' result = filter(str.isdigit, str1) result_list = list(result) result_str = "".join(result_list) 运行结果--->220755
注意:此方法用到filter函数,同时需要转为列表输出,不能直接打印result
3. 正则表达式
import re str1 = '拥有(220755)人评价' result = re.match(r'.*[(](\d+)[)].*$', str1) print(result.group(1)) 运行结果--->220755
注意:
使用正则表达式时当遇到字符串本身就有括号的需要注意,当直接打括号时系统会认为这是在分组,所以可以需要使用[]的形式来解决这个问题
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。