python 字符串分割问题 不分割{}内内容

ctgucool 2019-01-14 07:37:26
如题,python 字符串分割问题
假设
str1="s1,s2,s3,{s4,s5,s6},s7,s8"
分割后是 s1 s2 s3 {s4,s5,s6} s7 s8

...全文
373 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
胖子吴 2019-01-16
  • 打赏
  • 举报
回复
re.split(r"[{]?,[}]?",str1)
notback 2019-01-16
  • 打赏
  • 举报
回复

str1="s1,s2,s3,{s4,s5,s6},s7,s8"
slst = str1.translate(str.maketrans("","","{}")).split(",")
混沌鳄鱼 2019-01-16
  • 打赏
  • 举报
回复

>>> re.findall(r'\w+|[{].+[}]',str1)
['s1', 's2', 's3', '{s4,s5,s6}', 's7', 's8']
ctgucool 2019-01-15
  • 打赏
  • 举报
回复
能有简单点方法吗,一两行搞定的那种
suiziugo 2019-01-15
  • 打赏
  • 举报
回复
import re


str1 = "s1,s2,s3,{s4,s5,s6},s7,s8,{s9,s10},{s11,s12},{s13,s14}"
res = []
ls = re.split(r'[{}]', str1)
for i in ls:
if i and i != ',':
if i.startswith(',') or i.endswith(','):
res.extend(i.strip(',').split(','))
else:
res.append('{' + i + '}')
print(res)
指尖魔法师 2019-01-14
  • 打赏
  • 举报
回复
"""
功能:分割字符串
环境:python3.7
日期:2019/1/14 20:13
作者:指尖魔法师
版本:1.0
"""
str1 = "s1,s2,s3,{s4,s5,s6},s7,s8"
str2 = []

def fenge(start,end):
flag = False
for i in range(start, end):
if (str1[i] == '{'):
flag = True
if (str1[i] == '}'):
flag = False
if(str1[i] == ',') and (flag is False):
str2.append(str1[start:i])
start = i + 1
print(str2)

def main():
print(len(str1))
print(str1[24])
fenge(0, len(str1)-1)

if __name__ == '__main__':
main()

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧