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

C# Regex从文本提取多组数值、金额、日期的正则实现问题

正则提取多组支付信息方案

你当前的正则仅能匹配第一组数据,核心问题有两个:一是硬编码了第一组特有的Monthly, Starting文本,第二组数据前不存在这段内容;二是没有做重复分组匹配,只能捕获单次命中的内容,另外你写的[\n|\s]存在语法问题,字符集内的|会被识别为普通竖线字符,而非或逻辑。


调整后的正则

string pattern = @"Amount\s+of\s+Payments\s*(?:(?'term'\d{1,3})\s*\(e\)\s*\$\s*(?'payment_amt'[+-]?\d{1,3}(?:,?\d{3})*\.\d{2})\s*\(e\)[\s\S]*?(?'start_date'\d{4}-\d{1,2}-\d{1,2})\s*\(e\))+";

正则逻辑说明

  • 先锚定文本开头的Amount of Payments标识
  • 用\s*统一匹配所有空格、换行、制表符等空白内容,替代原来冗余的空白匹配写法
  • 把单组数据的匹配逻辑(期数→(e)标记→金额→(e)标记→任意中间内容→日期→(e)标记)包裹在可重复的非捕获分组中,用+标识匹配1次及以上
  • 三个命名捕获组term/payment_amt/start_date会按匹配顺序,依次捕获所有符合规则的期数、金额、日期,不会遗漏第二组数据

C# 调用示例

using System;
using System.Text.RegularExpressions;

public class PaymentExtractor
{
    public static void Main()
    {
        string rawText = @"Amount of Payments 



60 
(e) 



$ 1160.87  (e) 
Monthly, Starting 
               2022-07-08 00:00:00              (e)            

  
1 
(e) 


$ 895.85  (e) 

                2027-07-08 00:00:00              (e) ";
        
        string pattern = @"Amount\s+of\s+Payments\s*(?:(?'term'\d{1,3})\s*\(e\)\s*\$\s*(?'payment_amt'[+-]?\d{1,3}(?:,?\d{3})*\.\d{2})\s*\(e\)[\s\S]*?(?'start_date'\d{4}-\d{1,2}-\d{1,2})\s*\(e\))+";
        
        Match result = Regex.Match(rawText, pattern);
        if (result.Success)
        {
            // 捕获组的Captures集合按顺序存储了所有匹配到的同组内容
            for (int i = 0; i < result.Groups["term"].Captures.Count; i++)
            {
                Console.WriteLine($"第{i+1}组数据:");
                Console.WriteLine($"期数:{result.Groups["term"].Captures[i].Value}");
                Console.WriteLine($"支付金额:{result.Groups["payment_amt"].Captures[i].Value}");
                Console.WriteLine($"起始日期:{result.Groups["start_date"].Captures[i].Value}");
                Console.WriteLine("---");
            }
        }
    }
}

运行输出结果

第1组数据:
期数:60
支付金额:1160.87
起始日期:2022-07-08
---
第2组数据:
期数:1
支付金额:895.85
起始日期:2027-07-08
---

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:06:31