我有两个字符串:
我尝试了以下方法,但它们没有达到目的:
if(aString.matches("[\\d\\s\\d\\s\\d]"){//do foo}
if(anotherString.matches("[0-1\\s0-1\\s0-1]")){// do bar}
答案 0 :(得分:2)
第一个:
匹配双精度值的模式是 - "-?\\d+(.\\d+)?"
。好的,这是一个非常普遍的。不考虑科学记数法。
因此,要获得double值和空格的序列,请使用:
// Removed non-captured group for readability purpose
(-?\\d+(\\.\\d+)?)(?:\\s(-?\\d+(\\.\\d+)?)){2}
第二个:
(?:0|-?1)(\\s(?:0|-?1)){2}
答案 1 :(得分:1)
第一次匹配:
^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
请注意,它允许带或不带小数部分的双值
第二次匹配:
^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
答案 2 :(得分:0)
第一个:
"-?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)?"
第二个:
"(?:0|-?1) (?:0|-?1) (?:0|-?1)"