如何用Python的re模块拆分保留括号的字符串并去除空格?
使用Python re模块拆分C风格变量声明字符串
可以通过构造合适的正则表达式,结合re.findall()方法实现需求。核心思路是匹配所有需要保留的单元:标识符/整数、浮点数、单个特殊符号,同时自动忽略空格。
实现代码
import re # 目标字符串 declaration = "double a[3] = {0.0, 0.0, 0.0};" # 正则匹配规则 pattern = r'\w+|\d+\.\d+|[^\s\w]' # 执行匹配 split_result = re.findall(pattern, declaration) print(split_result) # 输出:['double', 'a', '[', '3', ']', '=', '{', '0.0', ',', '0.0', ',', '0.0', '}', ';']
正则规则说明
\w+:匹配一个或多个字母、数字、下划线,对应double、a、3这类连续的标识符/整数\d+\.\d+:匹配带小数点的浮点数(如0.0),确保这类数值不会被拆分成数字和小数点两个部分[^\s\w]:匹配单个非空白、非字母数字下划线的字符,对应[、]、=、{、}、;、,这些符号
re.findall()会按正则分支的优先级依次匹配,自动跳过空格(因为空格不在任何匹配分支中),最终返回所有匹配到的单元组成的列表。
内容的提问来源于stack exchange,提问作者kstn
相关产品推荐
相关产品推荐

