[英]Java check string for comma and space
我有一个String val
val'6 000,00'。
我需要检查是否有空格和逗号。
目前我使用
String pattern = "([-+]?[0-9]*,?[0-9]+)";
if(val.matches(pattern)) {
paraNew.setAlignment(ParagraphAlignment.RIGHT);
System.out.println("[Server - addDocxTableData() - Align RIGHT secondary]");
}
但是它在空白处失败。 任何人都可以改善上述模式吗?
PS我尝试了"([-+]?[0-9]*,?[0-9]+[:space])"
但是它没有用。
如果我对您的理解正确,这应该为您做到:
^([-+]?\d{1,3}(?: \d{3})*(?:,[0-9]+)?)$
它允许整数部分为任意数目的三位数字组,以空格分隔。 (第一组可以是1-3位数字。)可以选择在其后跟随一个具有1个或多个数字的小数部分。
这个正则表达式
^[-+]?[0-9]{1,3}(?:[ ][0-9]{3})*(?:[,][0-9]+)?$
将匹配
+1 123,12
-123 456 789,12456
12 345
但不会匹配
+1123,12
-123456789,123
-1234 56,123
12345
这个怎么样:
^[-+]?[0-9]{1,3}(\s[0-9]{3})*?(,[0-9]+)??$
如果数字每3个字符后有一个空格(千个旁观者),则验证数字。 如果它带有逗号(,),请确保在逗号后有数字。
效劳于:
6 000,00
9 000 000,50
3 000 000
630 000 000 000
940 000 000 000 000
-9 000 000 000 000 000 000
您需要此正则表达式: ^.*( .*,|,.* ).*$
说明:
.*,
,.*
(...|...)
String.matches()
。 这将尝试与完整字符串匹配。 这就是为什么我们需要.*
到模式的开头和结尾。 你可以在这里玩。
所以你的正则表达式会找到这个
1,111
+1,111
-1,111
1111
您的正则表达式无法正常工作,因为您没有检查空间。
([-+]?([0-9]*/s?)*,?[0-9]+)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.