我有一个类似于以下
的字符串32686_8 is number 2
我是新手使用正则表达式并想要一些帮助。我想要两种不同的模式,首先要找到
32686_8
然后另一个找到
希望你能帮忙:)2
答案 0 :(得分:2)
您可以使用以下内容进行匹配:
([\\d_]+)\\D+(\\d+)
并提取$1
和$2
请参阅DEMO
代码:
Matcher m = Pattern.compile("^([\\d_]+)\\D+(\\d+)$").matcher(str);
while(m.find())
{
System.out.println(m.group(1));
System.out.println(m.group(2));
}
答案 1 :(得分:0)
使用捕获组。
Matcher m = Pattern.compile("^(\\S+).*?(\\S+)$").matcher(str);
if(m.find())
{
System.out.println(m.group(1));
System.out.println(m.group(2));
}
OR
Matcher m = Pattern.compile("^\\S+|\\S+$").matcher(str);
while(m.find())
{
System.out.println(m.group());
}
^\\S+
匹配开头的一个或多个非空格字符。同样,\\S+$
匹配末尾出现的一个或多个非空格字符。
OR
Matcher m = Pattern.compile("\\b\\d+(?:_\\d+)*\\b").matcher(str);
while(m.find())
{
System.out.println(m.group());
}