我有一个与$。中的金额匹配的正则表达式。
(\-?\$\-?[0-9]+\.?[0-9]*|usd\-?[0-9]+\.?[0-9]*|[0-9]+\.?[0-9]*\-?usd|[0-9]*\.?[0-9]*\$)
目前匹配 $ 250 , USD250 等,它不应与 $ 250abchhh 中的 $ 250 相匹配。
所以,我尝试过单词边界,但它也没有解决这个问题,我该如何解决这个问题呢?
匹配案例
$456
$45.6
$.5
$-45
-$45
usd-456
usd46
usd4.6
usd.46
1$
1.5$
.5$
-.5$
5usd
456usd
它不应该匹配
455$abc
abc$123
abcuds1
jhb$5665usdjnjnb
$usd1555
usd$768
$566usd
$5788usdbjhj
答案 0 :(得分:0)
您还应该为小数写一个正确的正则表达式。并使用^ $作为行的开头和结尾。
^\s*(?:(?:(?:-?(?:usd|\$)|(?:usd|\$)-)(?:(?:0|[1-9]\d*)?(?:\.\d+)?(?<=\d)))|(?:-?(?:(?:0|[1-9]\d*)?(?:\.\d+)?(?<=\d))(?:usd|\$)))\s*$
在测试结果中查看here。