为什么返回false?

"$10+".matches("^\\\\${0,1}[1-9,\\\\.]{0,}[\\\\+kK]{0,}")


我使用eclipse调试器,因此这是使用\\\\而不是\\的原因

第一个符号与^\\\\${0,1}相匹配
数字或逗号或点匹配到[1-9,\\\\.]{0,}
最后一个符号+或k或K应该匹配[\\\\+kK]{0,}

但是返回false。为什么?

最佳答案

集合中没有零,可能应该是:

"$10+".matches("^\\${0,1}[0-9,\\.]{0,}[\\+kK]{0,}"


或(如果您想一开始使用非零值):

"$10+".matches("^\\${0,1}[1-9\\.][0-9,\\.]{0,}[\\+kK]{0,}"


另外,不需要在字符组中转义+,无需确定“。”的含义是否相同。 。

10-06 09:50