[英]How do I split up the following Python string in to a list of strings?
我有一个字符串'Predicate(big,small)'
我如何从中得出以下字符串列表, ['Predicate','(','big',',','small',')']
名称可能是任何东西,元素之间也可以有空格(我需要从列表中取出空格)、 Predicate (big, small)
到目前为止我已经尝试过这个,但这显然不是我想要的结果
>>> str1 = 'Predicate(big,small)'
>>> list(map(str,str1))
输出:
['P', 'r', 'e', 'd', 'i', 'c', 'a', 't', 'e', '(', 'b', 'i', 'g', ',', 's', 'm', 'a', 'l', 'l', ')']
您可以使用re.split()
在(
或)
上拆分字符串。 您可以在正则表达式中捕获分隔符以将它们包含在最终输出中。 结合str.strip()
处理空格并过滤掉任何结尾的空字符串,您会得到类似的结果:
import re
s = 'Predicate ( big ,small )'
[s.strip() for s in re.split(r'([\(\),])', s.strip()) if s]
# ['Predicate', '(', 'big', ',', 'small', ')']
你可以在这里使用re
。
import re
text='Predicate(big,small)'
parsed=re.findall(r'\w+|[^a-zA-Z,\s])
# ['Predicate', '(', 'big', 'small', ')']
\\w+
匹配任何单词字符(等于[a-zA-Z0-9_]
)。[^a-zA-Z,\\s]
匹配列表中不存在的单个字符。\\s
用于匹配空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.