使用 Python 拆分字符串

Split a string using Python

我的字符串是

"S001P001Q001"

我想把字符串拆分成:

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

我尝试了以下步骤:

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

正如我在评论中所说,您可以使用 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函数从一个字母表开始匹配,贪婪地匹配所有零个或多个非字母字符,直到识别出一个字母表。一旦找到字母表,它就会停止匹配。现在从第二个字母开始,它匹配所有字符直到下一个字母。同样,它继续。