Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何按字母数字与数字分组拆分字符串_Python_String_Substring_Numeric_Alphanumeric - Fatal编程技术网

Python:如何按字母数字与数字分组拆分字符串

Python:如何按字母数字与数字分组拆分字符串,python,string,substring,numeric,alphanumeric,Python,String,Substring,Numeric,Alphanumeric,假设我有如下字符串: “H39_M1”、“H3_M15”、“H3M19”、“H3M11”、“D363_H3”、“D_128_H17_M50” 我如何将它们每一个拆分为一个子字符串列表? 像这样: [“H39”、“M1”]、“[H3”、“Min15”]、[“H3”、“M19”]、[“H3”、“M11”]、[“D363”、“H3”]、[“D128”、“H17”、“M50”] 然后:切换字母数字组和数字组的位置, 这样地: [“39H”、“1M”]、“[3H”、“15Min”]、[“3H”、“19M”

假设我有如下字符串:
“H39_M1”、“H3_M15”、“H3M19”、“H3M11”、“D363_H3”、“D_128_H17_M50”

我如何将它们每一个拆分为一个子字符串列表? 像这样:

[“H39”、“M1”]、“[H3”、“Min15”]、[“H3”、“M19”]、[“H3”、“M11”]、[“D363”、“H3”]、[“D128”、“H17”、“M50”]

然后:切换字母数字组和数字组的位置, 这样地:
[“39H”、“1M”]、“[3H”、“15Min”]、[“3H”、“19M”]、[“3H”、“11M”]、[“363D”、“3H”]、[“128D”、“17H”、“50M”]

如您所见,数字组和字母数字组变量的长度。
此外,下划线可以将它们分开。

我建议在这里使用
re.findall
re.sub

inp=“H3M19”
inp=re.sub(r'([A-Z]+)([0-9]+)',r'\2\1',inp)
零件=关于findall(r'[0-9]+[A-Z]+',inp)
印刷品(部分)
这张照片是:

['3H', '19M']

第一个
re.sub
步骤通过捕获字母和数字对,然后交换它们,将
H3M19
转换为
3H19M
。然后,我们使用
re.findall
查找交换输入中的所有数字/字母对。

稍微修改它并:`import re-inp=“D1378_-Min199_-H4999”inp=inp.replace(“,”)inp=re.sub(r'([a-zA-Z]+)([0-9999]+)',r'\2\1',inp)parts=re.findall(r'[0-9]+[a-Z]+,inp)print(parts)`是否完成了工作?^[HR]+和
[0-9999]+
基本上是一样的<代码>[0-9]+匹配由0到9的一个或多个数字组成的任何数字。