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