首页 >Java >java教程 >如何使用正则表达式从 Java 字符串中提取数字?

如何使用正则表达式从 Java 字符串中提取数字?

Susan Sarandon
Susan Sarandon原创
2024-12-12 18:49:15830浏览

How to Extract a Number from a String in Java Using Regular Expressions?

如何在 Java 中使用正则表达式从字符串中提取值

问题:

给定一系列结构为“[some text] [some number] [some more text]”的字符串,我们如何才能使用 Java 的正则表达式 (regex) 类提取“某个数字”值?我们主要对“某个数字”的单个实例感兴趣,并且源字符串很短。

答案:

要实现提取,请按照以下步骤操作:

  1. 创建模式对象:

    • 使用 Pattern.compile(regex) 和您想要的正则表达式定义一个 Pattern 对象。例如:

      private static final Pattern p = Pattern.compile("^([a-zA-Z]+)([0-9]+)(.*)");
  2. 创建一个 Matcher 对象:

    • 使用 p 获取一个 Matcher 对象.matcher(sourceString) 将模式与输入进行匹配string.
  3. 检查匹配:

    • 调用 m.find() 来确定模式是否存在在string.
  4. 提取值:

    • 如果找到匹配项,请使用 m.group(index) 来检索所需的组。例如,m.group(2) 返回“某个数字”值。

示例:

Matcher m = p.matcher("Testing123Testing");

if (m.find()) {
    System.out.println(m.group(2)); // prints 123
}

正则表达式改进:

用于提取第一个数字,请使用以下正则表达式:

^\D+(\d+).*

这会匹配非数字字符后跟一个或多个数字和其他字符的字符串。 m.group(1) 将检索“某个数字”值。

以上是如何使用正则表达式从 Java 字符串中提取数字?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn