Regex 使用正则表达式捕获不同形式的数字
我们正在接收保证金提供商发送的文件,其中包括按照特定格式分配给其账户的保证金金额的详细信息;我们将此作为Regex 使用正则表达式捕获不同形式的数字,regex,Regex,我们正在接收保证金提供商发送的文件,其中包括按照特定格式分配给其账户的保证金金额的详细信息;我们将此作为*.csv文件内容接收 示例值如下所示(第一行是标题): 日期(日/月/年),客户名称,客户ID,借款能力 2019年11月27日,史密斯父子(私人)有限公司,JKB1234LC,6000000.00 2020年11月3日,XXXX银行股份有限公司/史密斯博士,JKB12345LC,“10000000” 2019年11月27日,A.A.Smith夫人和A.A.Smith夫人,JKB1123LC
*.csv
文件内容接收
示例值如下所示(第一行是标题):
日期(日/月/年),客户名称,客户ID,借款能力2019年11月27日,史密斯父子(私人)有限公司,JKB1234LC,6000000.00
2020年11月3日,XXXX银行股份有限公司/史密斯博士,JKB12345LC,“10000000”
2019年11月27日,A.A.Smith夫人和A.A.Smith夫人,JKB1123LC,20000000.00
2020年3月11日,C.史密斯先生,JKB9087LC,0
2019年11月27日,I.A.史密斯夫人,JKB9876LC,0.00 我使用了以下
Regex
表达式来识别账户和保证金值:
(?'Account'JKB[0-9]+LC)(?'Amount',(?<=LC,)\d+\.\d*)
(?'Account'JKB[0-9]+LC)(?'Amount',(?这里有一个你可以用来识别每个区块的方法(它避免了客户端名称包含LC的情况,比如在'PLC'中)
(?'Date'\d\d?\/\d\d?\/\d{4}),(?'Client'[^]*?“[^,]*?),(?'Account'[^,]*?),“(?'Amount'[0-9,.]*)”?
详情:
- 匹配日期:一个或两个数字表示日期/一个或两个数字表示月份/4个数字表示年份
- 然后一个
,
不在日期或客户机中
- 匹配客户端:
“后面跟一些字符,直到下一个”
,或者一些字符不是,
,
不在客户端或帐户中,
(我只假设客户端id中没有,
),
,可能是一个“
,既不在账户上也不在金额上“
(可以从正则表达式中安全删除)我想知道为什么你想使用正则表达式,考虑到大多数语言都有用于将CSV文件读入易于操作的对象的工具。如果你使用特定语言来完成一般任务,你可以考虑添加一个标签来使用该语言,并邀请读者使用正则表达式或主要使用语言的答案。你确定了。是吗?:
('Amount',(?@CarySwoveland)我在Azure
中实现了一个简单的函数应用程序
,目的是在我的解决方案在云中旋转时将CSV
转换为JSON
。嘿@Jupiter非常感谢!我能够将Regex
表达式构建为(?'Account'JKB[0-9]+LC)(?'Amount',(?@PoulBak you表达式不匹配所有情况:(