[英]How to construct regex to identify dollar ($) money sum
我正在尝试创建一个可以识别金额(以美元为单位)的正则表达式。 问题是数据是由OCR在扫描的PDF文件上生成的,因此数据不精确:
$
可以用S
表示 .
可以表示,
1
可以由l
或I
表示 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
与$
,任何,
有.
和任何其它S
带5
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.