使用正则表达式提取Java中的值

我有一些粗略的字符串:

[some text] [some number] [some more text]

我想使用Java Regex类提取[some number]中的文本。

我大致知道我想使用什么正则表达式(尽管欢迎所有建议)。我真正感兴趣的是Java调用以获取正则表达式字符串并将其用于源数据以产生[some number]的值。

编辑:我应该补充一点,我只对单个[一些数字](基本上是第一个实例)感兴趣。源字符串很短,我不会寻找[some number]的多次出现。

回答:

完整示例:

private static final Pattern p = Pattern.compile("^([a-zA-Z]+)([0-9]+)(.*)");

public static void main(String[] args) {

// create matcher for pattern p and given string

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

// if an occurrence if a pattern was found in a given string...

if (m.find()) {

// ...then you can use group() methods.

System.out.println(m.group(0)); // whole matched expression

System.out.println(m.group(1)); // first expression from round brackets (Testing)

System.out.println(m.group(2)); // second one (123)

System.out.println(m.group(3)); // third one (Testing)

}

}

由于你要查找第一个数字,因此可以使用以下正则表达式:

^\D+(\d+).*

m.group(1)会返回你的第一个电话号码。请注意,带符号的数字可以包含减号:

^\D+(-?\d+).*

以上是 使用正则表达式提取Java中的值 的全部内容, 来源链接: utcz.com/qa/415061.html

回到顶部