I'd like to test if a string ends with a a digit. I expect the following Java line to print true. Why does it print false?
System.out.println("I end with a number 4".matches("\\d$"));
解决方案
Your regex will not match the entire string but only the last part. Try the below code and it should work fine as it matches the entire string.
System.out.println("I end with a number 4".matches("^.+?\\d$"));
You can test this for a quick check on online regex testers like this one:
/simple/index.html. This also gives you what you should use in the Java code in the results with appropriate escapes.
The .+ will ensure that there is atleast one character before the digit.
The ? will ensure it does a lazy match instead of a greedy match.
如果觉得《java判断是否已数字结尾 正则表达式测试字符串是否以数字结尾》对你有帮助,请点赞、收藏,并留下你的观点哦!