如何拆分含Python函数的字符串并保留完整函数作为列表元素?
拆分包含Python函数调用的字符串并保留完整函数
要实现将连续的函数调用字符串拆分为单个完整函数的列表,你可以利用正则表达式的零宽断言定位拆分位置,避免丢失右括号。
解决方案代码
import re s = 'hello()there()' result = re.split(r'(?<=\))(?!$)', s) print(result) # 输出: ['hello()', 'there()']
正则表达式说明
(?<=\)):正向回顾后发断言,确保拆分位置的前面是右括号,保证每个拆分点都在一个完整函数的结尾之后。(?!$):负向前瞻断言,排除字符串末尾的位置,避免最后一个函数后面被拆分出空字符串。
扩展测试
如果函数包含参数,这个方法同样适用:
s = 'foo()bar(baz)qux(1,2,3)' result = re.split(r'(?<=\))(?!$)', s) print(result) # 输出: ['foo()', 'bar(baz)', 'qux(1,2,3)']
这种方式的核心是拆分的是两个字符之间的位置而非具体字符,因此不会破坏原有的函数结构,完美解决了你之前遇到的分隔符丢失或单独成元素的问题。
内容的提问来源于stack exchange,提问作者O Renée
相关产品推荐
相关产品推荐

