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

如何编写单个正则表达式匹配法语文本中的法语格式数字

法语格式数字匹配正则方案

最终正则(满足所有需求)

number_pattern = re.compile(r'\d+(?:[., \u00A0]\d+)*', flags=re.UNICODE)

匹配规则说明

该正则完全符合你的要求:

  • 首尾必然为数字,支持单个数字匹配,不会遗漏1位数字的场景
  • 所有分隔符(点、逗号、普通空格、不间断空格\u00A0)只能出现在两个数字之间,不会匹配到末尾的非数字字符
  • 自动限制非数字字符不能连续出现,避免错误匹配用, 等分隔的数字列表

匹配效果示例

  • 可正常匹配:7、123,45、1.234.567,89、12\u00A0345、987 654,321
  • 不会错误匹配:12.、12, 、1,,2、1 3(两个连续空格)

严格格式版本(可选)

如果后续需要严格遵循法语数字规范(千位分隔符后必须跟3位数字),可使用以下版本:

number_pattern = re.compile(r'\d{1,3}(?:[., \u00A0]\d{3})*(?:,\d+)?', flags=re.UNICODE)

使用示例

你的原有处理流程可以直接复用,无需调整:

import re
number_pattern = re.compile(r'\d+(?:[., \u00A0]\d+)*', flags=re.UNICODE)

doubled_dollars_plain_text = plain_text.replace('$', '$$')
substituted_plain_text = re.sub(number_pattern, '$number', doubled_dollars_plain_text)

内容的提问来源于stack exchange,提问作者mike rodent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:06:03