繁体   English   中英

如何构造正则表达式以识别美元($)金额

[英]How to construct regex to identify dollar ($) money sum

我正在尝试创建一个可以识别金额(以美元为单位)的正则表达式。 问题是数据是由OCR在扫描的PDF文件上生成的,因此数据不精确:

  • $可以用S表示
  • . 可以表示,
  • 1可以由lI表示
  • 5可以用S表示

例子:

Data:       What is should be:
S0.01    => $0.01
S1       => $1
S400.05  => $400.05
$0,01    => $0.01
S0,SI    => $0.51

问题:是否可以构造可以搜索这种复杂模式的正则表达式?

没那么复杂。 从可以匹配“原始”输出的正则表达式开始,例如

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

现在,只需将可疑字符替换为其他字符即可。

[$S][0-9SIl]+([.,][0-9SIl]{2})?

, but that's unavoidable with regular expressions alone. 这可能会给您带来误报,因为您会在“我读了棒球和篮球新闻的SI”这样的句子中“找到” $1 (SI是《 》的缩写,但仅凭正则表达式不可避免)。

一旦您完成了比赛,结果转换成其认为是正确的形式很简单:更换任何最初的S$ ,任何,. 和任何其它S5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM