python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > 提取python字符串括号中的内容

如何提取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

注意:

使用正则表达式时当遇到字符串本身就有括号的需要注意,当直接打括号时系统会认为这是在分组,所以可以需要使用[]的形式来解决这个问题

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文