猿问

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

我必须在 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 在这里收取一些文字......”


慕莱坞森
浏览 90回答 3
3回答

慕妹3146593

您可以使用 .NET regex unlimited-width lookbehinds:Regex.Match(s,&nbsp;@"(?<=\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是一个完整的单词

潇湘沐

那这个呢 :(?<=[Cc]哈尔格。)([0-9]&nbsp;,[0-9]&nbsp;.[0-9]&nbsp;)|[0-9]&nbsp;,[0-9]&nbsp;.[0-9]&nbsp;(?= \s&nbsp;[Cc]harge)

白衣非少年

下面的正则表达式应该可以帮助你。Charge.*[0-9]+([,]?[0-9]+)*\.([0-9]){0,2}$希望这有效。
随时随地看视频慕课网APP
我要回答