首页 > 解决方案 > 从字符串创建一个字符列表,仅使用字符串函数而不是正则表达式

问题描述

输入:

data = "~ddd , eee~, ~aaaa~"

期望的输出:

data = ["~ddd eee~","~aaaa~"]
  1. 从数据中打印字符串列表,以“~”开头和结尾。
  2. 替换 , 如果在 ~ 之间,则使用空格。

我如何在不使用 python 中的正则表达式的情况下实现这一点?

标签: python

解决方案


不是单行的,有些东西可能看起来很多余,但它非常简单易懂。

result = []
opened = False
for i, c in enumerate(data):
    if c == '~' and not opened:
        start = i
        opened = True
    elif c == '~' and opened:
        end = i + 1
        result.append(data[start:end].replace(' , ', ' '))
        opened = False

推荐阅读