Python:在字符串字段中有条件地插入字符
在具有以下条件的字符串字段中有条件地插入字符的最佳方法是什么:Python:在字符串字段中有条件地插入字符,python,regex,pandas,Python,Regex,Pandas,在具有以下条件的字符串字段中有条件地插入字符的最佳方法是什么: 在左侧前3个数字字符后插入“.”(忽略字母) 如果后面没有其他字符,请不要添加“.” 96501 E0000 V909 965 变成 965.01 E000.0 V909 965 您可以使用((?:\D*\D){3})捕获前三位数字,使用(?=。+)断言后面至少还有一个字符,并使用back引用将添加到捕获的模式中: df[0].str.replace(r'^((?:\D*\d){3})(?=.+)', r'\1.') #0
96501
E0000
V909
965
变成
965.01
E000.0
V909
965
您可以使用
((?:\D*\D){3})
捕获前三位数字,使用(?=。+)
断言后面至少还有一个字符,并使用back引用将
添加到捕获的模式中:
df[0].str.replace(r'^((?:\D*\d){3})(?=.+)', r'\1.')
#0 965.01
#1 E000.0
#2 V909
#3 965
#Name: 0, dtype: object
谢谢你的快速回答!如果您不介意的话,从左边算字母和数字的版本是什么?如果同时算字母和数字,您可以使用
^((?:[^a-zA-Z0-9]*[a-zA-Z0-9]){3}(?=。+)
。