使用Python拆分字符串

时间:2015-02-03 15:25:45

标签: python regex string python-2.7 split

我的字符串是

"S001P001Q001"

我想将字符串拆分为:

['S001', 'P001', 'Q001']

我尝试了这个步骤:

test_re = re.compile("(P?[^P]+)") 
result_str = test_re.findall(str1)

1 个答案:

答案 0 :(得分:3)

就像我在评论中所说的那样,您可以使用re.findall代替re.split方法。

>>> s = "S001P001Q001"
>>> re.findall(r'[A-Za-z][^A-Za-z]*', s)
['S001', 'P001', 'Q001']
>>> re.findall(r'[A-Za-z]\d*', s)
['S001', 'P001', 'Q001']

[A-Za-z] - 匹配字母表。

[^A-Za-z]* - 匹配零个或多个非字母字符。

\d* - 匹配零个或多个数字字符。

因此上述findall函数从字母开始匹配,贪婪地匹配所有零个或多个非字母字符,直到识别出字母。一旦找到字母表,它就会停止匹配。现在从第二个字母开始,它匹配所有字符到下一个字母表。同样,它继续下去。