仅使用字符串函数而不使用正则表达式从字符串创建字符列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅使用字符串函数而不使用正则表达式从字符串创建字符列表相关的知识,希望对你有一定的参考价值。
输入:
data = "~ddd , eee~, ~aaaa~"
所需的输出:
data = ["~ddd eee~","~aaaa~"]
- 打印数据中以“〜”开头和结尾的字符串列表。
- [替换,如果〜之间有空格。
我如何在不使用python中使用正则表达式的情况下实现此目标?
答案
您可以将str.split
与str.replace
一起使用:
data = "~ddd , eee~, ~aaaa~"
r = [(i+'~' if i[-1] != '~' else i).replace(', ', '') for i in data.split('~, ')]
输出:
['~ddd eee~', '~aaaa~']
另一答案
漂亮的可读代码:
def split_by_ap(word):
i = iter(word.split('~'))
result = []
while True:
space = next(i, None)
word = next(i, None)
if not word: break
result.append(word.replace(',', ''))
return result
print(split_by_ap("~ddd , eee~, ~aaaa~"))
另一答案
您可以在此正则表达式中使用re.findall
来获取~
之间的字符串,然后使用str.replace
将,
替换为:
data = "~ddd , eee~, ~aaaa~"
data = [r.replace(', ', '') for r in re.findall('~[^~]*~', data)]
print(data)
输出:
['~ddd eee~', '~aaaa~']
以上是关于仅使用字符串函数而不使用正则表达式从字符串创建字符列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用正则表达式从字符串中删除字符串和特殊字符并仅显示不带逗号的数字?