如何在 Java 中使用正则表达式从字符串中提取值
问题:
给定一系列结构为“[some text] [some number] [some more text]”的字符串,我们如何才能使用 Java 的正则表达式 (regex) 类提取“某个数字”值?我们主要对“某个数字”的单个实例感兴趣,并且源字符串很短。
答案:
要实现提取,请按照以下步骤操作:
创建模式对象:
使用 Pattern.compile(regex) 和您想要的正则表达式定义一个 Pattern 对象。例如:
private static final Pattern p = Pattern.compile("^([a-zA-Z]+)([0-9]+)(.*)");
创建一个 Matcher 对象:
检查匹配:
提取值:
示例:
Matcher m = p.matcher("Testing123Testing"); if (m.find()) { System.out.println(m.group(2)); // prints 123 }
正则表达式改进:
用于提取第一个数字,请使用以下正则表达式:
^\D+(\d+).*
这会匹配非数字字符后跟一个或多个数字和其他字符的字符串。 m.group(1) 将检索“某个数字”值。
以上是如何使用正则表达式从 Java 字符串中提取数字?的详细内容。更多信息请关注PHP中文网其他相关文章!