为了账号安全,请及时绑定邮箱和手机立即绑定

忽略少数字符直到找到提到的模式的正则表达式

忽略少数字符直到找到提到的模式的正则表达式

C#
慕莱坞森 2022-11-21 20:26:31
我必须在 pdf 中找到一个小数,它位于“费用”栏下。所以,我遇到了正则表达式来找到工作正常的小数。但是在其中一个 pdf 中,我有以下格式。Pdf 文本 -费用(国家)18181 和 75/100 18,181.75 预计 - 18,181.75用于在文本“Charge”之后查找小数的正则表达式:(Charge ([0-9]*)(\,?[ ]?[0-9])+(.[0-9]+))所以,我想忽略“费用”和小数点之间的任何内容。并显示十进制数。有什么帮助吗?情况 2:“18,181.75”有时也可能出现在“Charge”之前。就像“18,181.75 在这里收取一些文字......”
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以使用 .NET regex unlimited-width lookbehinds:

Regex.Match(s, @"(?<=\bCharge\b.*)\d[\d,]*\.\d+|\d[\d,]*\.\d+(?=.*?\bCharge\b)")

请参阅正则表达式演示

细节

  • (?<=\bCharge\b.*)\d[\d,]*\.\d+- 一个以 a 开头的位置Charge作为一个完整的单词,后面有换行符以外的字符,然后匹配一个数字,后跟 0+ 个逗号或数字,然后是一个点和 1+ 个数字

  • |- 或者

  • \d[\d,]*\.\d+(?=.*?\bCharge\b)- 一个数字后跟 0+ 个逗号或数字,然后是一个点和 1+ 个数字,之后应该跟除换行符之外的任何 0+ 个字符,尽可能少,然后Charge是一个完整的单词

//img1.sycdn.imooc.com//637b6e9100010eee05780150.jpg

查看完整回答
反对 回复 2022-11-21
?
潇湘沐

TA贡献1816条经验 获得超6个赞

那这个呢 :

(?<=[Cc]哈尔格。)([0-9] ,[0-9] .[0-9] )|[0-9] ,[0-9] .[0-9] (?= \s [Cc]harge)


查看完整回答
反对 回复 2022-11-21
?
白衣非少年

TA贡献1155条经验 获得超0个赞

下面的正则表达式应该可以帮助你。

Charge.*[0-9]+([,]?[0-9]+)*\.([0-9]){0,2}$

希望这有效。


查看完整回答
反对 回复 2022-11-21
  • 3 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信