我有以下正则表达式,已在regex101.com上进行了测试 该表达式匹配值“ 30,413.83”和“ 65,464.70” 但,它与“ 0.00”值不匹配,如果我在小数点左边再加一位数字,则表示匹配。菲如果我将“ 0.00”值更改为“ 40.00”,则它会匹配所有3个值
如何更改我的正则表达式以匹配所有3个值?
正则表达式:
["]*\d+[,]*\d+\.\d{2}["]*(?=,)
字符串:
1650028985,02/01/2018,301217 MUNDO DEL JUGUETE KENN,2344112341191,"30,413.83","0.00","65,464.70",301217 MUNDO DEL JUGUETE KENN SANTO DOMI DO 000082368555,0,
答案 0 :(得分:0)
您似乎只将双引号的float值作为目标,限制为两位小数。
演示:https://regex101.com/r/3supOS/1/
模式:~"\d{1,3}(?:,\d{3})*\.\d{2}"~
这需要:
如果您是“提取”而不是“验证”,则该模式可以更简单地编写并且仍然有效。
您的模式:
["]* #optional zero or infinite double quotes
\d+ #required one or more digits
[,]* #optional zero or infinite commas
\d+ #required one or more digits
\. #required one dot
\d{2} #required two digits
["]* #optional zero or infinite double quotes
(?=,) #required match must be trailed by a comma