求用于转换特定负小数格式的Python正则表达式
Python正则表达式转换短格式负小数为标准格式
要把-.13082这类格式的字符串转为-1.3082,可以用Python的re.sub()函数结合正则表达式实现,核心逻辑是捕获小数点后的首位数字和剩余数字,再重新拼接成目标格式。
代码实现
import re def reformat_negative_decimal(input_str): # 匹配目标格式并捕获关键部分,重新拼接 return re.sub(r'^-\.(\d)(\d+)$', r'-\1.\2', input_str) # 测试示例 print(reformat_negative_decimal('-.13082')) # 输出: -1.3082 print(reformat_negative_decimal('-.26750')) # 输出: -2.6750
正则表达式说明
^-\.:匹配字符串开头的负号和小数点(小数点需用\转义,避免匹配任意字符)(\d):第一个捕获组,抓取小数点后的首位数字(\d+):第二个捕获组,抓取小数点后首位数字之外的所有剩余数字$:匹配字符串结尾,确保只处理完全符合格式的目标字符串
边界情况补充
如果输入是仅一位小数的场景(比如-.5),上面的正则会输出-5.,若需要补零可把替换规则改为r'-\1.0\2',但根据你的需求示例,这种情况可按需调整。
内容的提问来源于stack exchange,提问作者Zembla
相关产品推荐
相关产品推荐

