我需要做一个正则表达式来验证它只接受数字,点(。)可选,1个逗号(,)可选的数量,并且在逗号后我至少还有2个数字,这是我走得最远的数字来是这个
^(([0-9]{0,})+([.]?))+([,]{0,1}?)([0-9]{1,}?)+$
这很好用,问题是它允许我输入句点(。)例如不止一次(100 ... 000),可以接受,但是我只需要接受一个句点( 。)一次,我该如何解决?
我需要正则表达式进行如下验证
100 VALID
100.000,00 VALID
100. INVALID
100..00 INVALID
100, INVALID
100..000,00 INVALID
答案 0 :(得分:2)
为防止同一字符(在这种情况下为圆点)连续出现,请使用锚定的负向前视作为输入的起点:
DECLARE
the_variable date;
BEGIN
SELECT MIN(Start_Date) INTO the_variable FROM Employee_Master;
END;
/
在您的情况下:
^(?!.*[.][.])<rest of regex>
有关问题的测试用例,请参见live demo。
我不清楚您实际上想匹配什么,但是我不需要理解这一点即可回答您的问题,即如何防止同一字符连续出现。