You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分句子中与文本混合的整数、浮点数并整理为规范字符串

实现方案

原有方案问题说明

你使用的正则\d*\.*\d+\.*\d*存在多重点号匹配缺陷,可能识别到1.2.3这类无效数字格式,同时拆分后没有将数字片段和文本片段按原有顺序穿插合并,因此无法得到预期结果。

解决思路

  • 先修正数字匹配正则,可准确匹配包含省略整数位(如.5)、多前导零(如00.5)在内的合法整数、浮点数
  • 拆分字符串得到所有非数字片段,同时提取所有数字片段
  • 将两类片段按原有顺序交叉合并,过滤空字符串后用空格拼接即可

可运行代码示例

import re
from itertools import zip_longest

str1 = "test1.25nb 5test .5NB 00.5my_test 5unit 5.6"
# 匹配合法整数/浮点数的正则
num_pattern = r'\d*\.\d+|\d+'
# 拆分得到所有非数字片段
text_parts = re.split(num_pattern, str1)
# 提取所有数字片段
num_parts = re.findall(num_pattern, str1)
# 交叉合并两类片段,过滤空串后拼接为最终结果
result = ' '.join(
    [part for pair in zip_longest(text_parts, num_parts, fillvalue='') 
     for part in pair if part.strip()]
)
print(result)

输出结果

test 1.25 nb 5 test .5 NB 00.5 my_test 5 unit 5.6

内容的提问来源于stack exchange,提问作者Droid-Bird

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:27:05