我知道partition()存在,但是它只接受一个值,我正在尝试对各种值进行分区:
例如说我想在字符串中的符号之间进行分区:
input:“ function():”
输出:[“ function”,“(”,“)”,“:”]
我似乎找不到有效的方法来处理可变数量的分区。
答案 0 :(得分:2)
您可以将re.findall
与与单词或非空格字符匹配的交替模式一起使用:
re.findall(r'\w+|\S', s)
因此给定s = 'function():'
,它将返回:
['function', '(', ')', ':']
答案 1 :(得分:1)
您可以program
乘for p in program:
for r in p.requirements.all():
if user_dict[r.name] == r.status:
print "Match"
else:
print "No Match"
,然后使用+-(len(str) * '-')-+
| str |
+-(len(str) * '-')-+
保留定界符,然后删除空白部分。
re.split
请注意,这将在每个特殊字符后分割;如果您想将某些特殊字符组放在一起,例如\W
或(...)
,您应该首先使用>>> import re
>>> s = "function(): return foo + 3"
>>> [s for s in re.split(r"(\W)", s) if s.strip()]
['function', '(', ')', ':', 'return', 'foo', '+', '3']
进行测试。
==