我正在尝试从一些发票中提取美元金额。我需要准确无误地匹配紧接着“总计”这个词。此外,“总计”一词有时可能会在其后出现一个冒号(即Total:
)。示例文本示例如下所示:
4 发现信用购买 - c REF#:02353R 总计:40.00AID:1523Q1Q TC:mzQm 40.00 更改 0.00 已售商品总数 = 0 12/23/17 Ql:38piii 414 9 76 1G6 感谢您购买 KR08ER 现在招聘 - 立即申请!
对于上面的示例,匹配应该是"40.00"
.
我写的正则表达式声明:
(?<=total)([^\n\r]*)
拉出“总计”一词之后的所有内容。我只想要下一个词。
这(与迄今为止的其他答案不同)匹配only总量(即无需检查组):
((?<=\bTOTAL\b )|(?<=\bTOTAL\b: ))[\d.]+
See 现场演示 http://rubular.com/r/aM1PAlTGGh当输入后面有或没有冒号时匹配TOTAL
.
需要 2 个后视(不捕获输入)的原因是它们不能具有可变长度。可选的冒号通过使用交替来处理(正则表达式或通过...|...
) 的 2 个向后看,一个带冒号,一个不带冒号。
If TOTAL
可以在任何情况下,添加(?i)
(the 忽略大小写标志)到正则表达式的开头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)