python:在每个子字符串后面的2个位置插入一个字符
我有一个字符串:python:在每个子字符串后面的2个位置插入一个字符,python,Python,我有一个字符串:'51.6251.8750.6951.4651.462626200',我想得到这样一个列表:['51.62','51.87','50.69','51.46','51.46','2626200'] 所以,基本上,在找到一个点之后,字符串应该被拆分2个位置 现在,我有以下内容,在这里我创建了一个所有点位置的列表,不确定是否是这样 import re string = '51.6251.8750.6951.4651.462626200' k = 2 # I couldn't fi
'51.6251.8750.6951.4651.462626200'
,我想得到这样一个列表:['51.62','51.87','50.69','51.46','51.46','2626200']
所以,基本上,在找到一个点之后,字符串应该被拆分2个位置
现在,我有以下内容,在这里我创建了一个所有点位置的列表,不确定是否是这样
import re
string = '51.6251.8750.6951.4651.462626200'
k = 2
# I couldn't find the position of the dot actually, so I had to replace for something first, it may be unecessary
subString = '-'
replacedString = re.sub('[.]', subString, string)
# create a list with all positions of the substring
subStringPosition = [i.start() for i in re.finditer(subString, replacedString)]
# add k to each element of the subStringPosition
subStringAfterK = [x + k for x in subStringPosition]
如果有人能帮助我,我将不胜感激。您可以使用regex方法来实现此结果
split
和findall
,过期时间为\d{2}\.\d{2}
,即2位数字后跟。和另外两位数字。在
findall
中,它将返回所有的2个数字和2个数字。在拆分[-1]
中,它将返回字符串的其余部分
string = "51.6251.8750.6951.4651.462626200"
result = re.findall(r"\d{2}\.\d{2}", string)
result.append(re.split(r"\d{2}\.\d{2}", string)[-1])
print(result)
输出
['51.62', '51.87', '50.69', '51.46', '51.46', '2626200']
您可以使用:
# string = '51.6251.8750.6951.4651.462626200'
matches = re.split(r'(?<=\.\d{2})', string)
您可以测试正则表达式。对于不使用
re
的解决方案:
def拆分:
nums=[]
而s中的“.”
i=s.find(“.”)
n=s[:i+3]
s=s[i+3:]
nums.append(n)
如果是:
nums.append(s)
返回nums
#print(matches)
['51.62', '51.87', '50.69', '51.46', '51.46', '2626200']