用多个定界符对字符串进行分区

时间:2019-02-28 17:56:12

标签: python

我知道partition()存在,但是它只接受一个值,我正在尝试对各种值进行分区:

例如说我想在字符串中的符号之间进行分区:

input:“ function():”

输出:[“ function”,“(”,“)”,“:”]

我似乎找不到有效的方法来处理可变数量的分区。

2 个答案:

答案 0 :(得分:2)

您可以将re.findall与与单词或非空格字符匹配的交替模式一起使用:

re.findall(r'\w+|\S', s)

因此给定s = 'function():',它将返回:

['function', '(', ')', ':']

答案 1 :(得分:1)

您可以programfor 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'] 进行测试。

==