我想测试一个字符串是否以数字结尾。我希望以下 Java 行打印为真。为什么会打印 false?
System.out.println("I end with a number 4".matches("\\d$"));
最佳答案
您的正则表达式不会匹配整个字符串,而只会匹配最后一部分。试试下面的代码,它应该可以正常工作,因为它匹配整个字符串。
System.out.println("I end with a number 4".matches("^.+?\\d$"));
您可以测试它以快速检查像这样的在线正则表达式测试器: http://www.regexplanet.com/simple/index.html .这也为您提供了您应该在具有适当转义的结果中的 Java 代码中使用的内容。
.+ 将确保数字前至少有一个字符。 ? 将确保它进行惰性匹配而不是贪婪匹配。
关于java - 用于测试字符串是否以数字结尾的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690305/