正则表达式匹配不同数字的价格

问题描述 投票:0回答:1

我正在尝试编写一个带有 go 的正则表达式来匹配由至少五位数字组成的价格,价格上有逗号。

例如: “10,400,000”,“10,900,000”,“500,000”,

我正在尝试以下表达式:“((\d+)(,)(\d+))(,)...”(,),它仅匹配具有八位数字(两个逗号)的序列。

例如: “10,400,000”,有效 “10,900,000”,有效 “50万”,无效

我认为如果我处理两次(一次处理带有两个逗号的数字,另一次处理带有一个逗号的数字),效率不会很高。如何表达整个图案?

谢谢你

regex go expression regex-greedy
1个回答
0
投票

一种方法是使用正向前瞻来确认字符串代表美元金额,并用逗号分隔每个三位数,然后要求字符串包含至少六个字符(即至少五个数字):

^(?=[1-9]\d{0,2}(?:,\d{3})*$).{6,}$

演示

© www.soinside.com 2019 - 2024. All rights reserved.