Java:需要从字符串中提取数字

标签 java regex

我有一个包含数字的字符串。类似于 “事件 #492 - 标题描述”
我需要从这个字符串中提取数字。
尝试过

Pattern p = Pattern.compile("\\d+");  
Matcher m = p.matcher(theString);  
String substring =m.group();  

通过获取错误

java.lang.IllegalStateException: No match found  

我做错了什么?
正确的表达方式是什么?
对于这么简单的问题,我很抱歉,但我搜索了很多,仍然没有找到如何做到这一点(也许是因为这里太晚了......)

最佳答案

您遇到此异常是因为您需要在访问 group 之前调用匹配器上的 find():

Matcher m = p.matcher(theString);  
while (m.find()) {
    String substring =m.group();
    System.out.println(substring);
}

Demo.

关于Java:需要从字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32290862/

相关文章:

java - 如何使同一个程序充当服务器和客户端(在java中使用套接字)

java - 如何测量 JSF 中的操作执行时间?

java - 如何在java中阻止子进程并重新启动它们

java - 我希望从 Java 中的匹配模式中提取值

java - Java中的正则表达式?

c++ - std::transform 中的段错误

c# - 在正则表达式替换中转义数字

java - 尝试在 Mac 上卸载 java 失败

java - 用Java读取Windows EventLog的方法

Java 正则表达式模式