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

求适配C语言scanf("%f")格式的正数RE2正则表达式

RE2正则表达式验证兼容scanf("%f")格式的正数

最终正则表达式

^[+]?(?:(?:\d+\.?\d*)|(?:\.\d+))(?:[eE][+-]?\d+)?$

规则说明

  • 匹配范围完全兼容C语言scanf("%f")可解析的所有正数格式,包括:
    • 整数形式:如123、+456
    • 小数形式:如123.45、123.、.45、+.67
    • 指数形式:如1e9、+123.45E-6、.78e+10、90.E5
  • 正则各部分解析:
    • ^:锚定字符串开头,确保匹配完整的分词单元
    • [+]?:可选的正号前缀,符合scanf对正数的解析规则
    • (?:(?:\d+\.?\d*)|(?:\.\d+)):匹配核心的数字/小数部分,覆盖两种合法格式:
      • \d+\.?\d*:以数字开头,可带小数点及后续可选数字
      • \.\d+:以小数点开头,后续必须跟至少一个数字
    • (?:[eE][+-]?\d+)?:可选的指数部分,支持大小写e/E,指数前可带正负号,且指数必须为整数
    • $:锚定字符串结尾,避免匹配包含多余字符的非法串

可选调整

若需严格匹配无正号前缀的正数,可移除正则中的[+]?部分,修改为:

^(?:(?:\d+\.?\d*)|(?:\.\d+))(?:[eE][+-]?\d+)?$

内容的提问来源于stack exchange,提问作者system PAUSE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:07:51