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

正则表达式:如何将可选字符匹配到同一组,合并浮点数与整数分组

解决方案

你可以用合并正则+非捕获组的方式实现仅保留2个捕获组的需求,具体调整如下:

最终正则表达式

^(\d+(?:\.\d+)?)\s+(NUM\d+);?$

正则说明

  • ^:匹配行起始位置,确保从每行开头匹配
  • (\d+(?:\.\d+)?):捕获组1,匹配整数或浮点数:
    • \d+:匹配整数部分
    • (?:\.\d+)?:非捕获组(用?:标记),匹配可选的小数部分(.+数字),这部分不会生成额外分组
  • \s+:匹配一个或多个空格/制表符(替代[ \t]+更简洁)
  • (NUM\d+):捕获组2,匹配完整的NUMx标识(比如NUM0、NUM1)
  • ;?$:匹配行尾可选的分号,兼容文本末尾的符号

匹配验证

针对你的待匹配文本:

1.5707963267949         NUM0 ;
0                       NUM1 ;
0                       NUM2 ;
0                       NUM3 ;
0                       NUM4 ;
0                       NUM5 ;

每个匹配项都会生成两个分组:

  • 第一组:数值(1.5707963267949、0等)
  • 第二组:NUMx标识(NUM0、NUM1等)

完全符合你期望的(数值,NUMx)分组形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:45:10