java - 用于测试字符串是否以数字结尾的正则表达式

标签 java regex

我想测试一个字符串是否以数字结尾。我希望以下 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/

相关文章:

Java使用beta分布生成0到1的随机数

java - Android ImageView 按路径显示图片

java - 使用java从字符串中找到整数第一次出现的索引

php - 在 PHP PCRE 函数中双重转义或不双重转义?

java - 将空字符串替换为空字符串

java - 当我在每次交替运行的选项卡式 Activity 中按下按钮时,我的应用程序崩溃了

java - Java中的优先级队列(最大堆声明)

javascript - 正则表达式(JS)中的奇怪(恕我直言)在逗号和一位数字之间添加 2 个空格

javascript - 为什么这个正则表达式不能按我想要的方式工作?

regex - 在Vim中删除除正则表达式之外的所有内容