Java正则表达式新搜索以包括最后一个组
我想得到所有的子字符串(Java正则表达式新搜索以包括最后一个组,java,regex,Java,Regex,我想得到所有的子字符串(\d{2,3}),所以我使用 以我为例 strExample = " 123c12de34 "; 匹配检测到两个匹配:123和34。 是否有任何模式可用于检测3个匹配项:123、12和34?(?:^ |)(?交替使用正向查找,通过这样做,您将能够找到以行首或数字开头的数字: RegEx模式:/(?我在regexplanet上使用Java正则表达式测试页进行了尝试,我在regexplanet上使用Java正则表达式测试页进行了尝试,“123c12de34”第一次出现12次
\d{2,3}
),所以我使用
以我为例
strExample = " 123c12de34 ";
匹配检测到两个匹配:123和34。
是否有任何模式可用于检测3个匹配项:123、12和34?
(?:^ |)(?交替使用正向查找,通过这样做,您将能够找到以行首或数字开头的数字:
RegEx模式:/(?我在regexplanet上使用Java正则表达式测试页进行了尝试,我在regexplanet上使用Java正则表达式测试页进行了尝试,“123c12de34”第一次出现12次,而“123c12de34”第一次出现123次.I必须为子字符串中的每个匹配项循环?我想要的是找到原始字符串中的所有索引,其中开始和结束我的正则表达式(\d{2,3})。通常,我希望开始和结束的位置与正则表达式字符串匹配,正则表达式字符串可以具有可变长度的字符串。@MToma匹配检测两个匹配:123和34。是否有模式检测三个匹配:123、12和34?
此正则表达式将查找所有的3
匹配,与在J中使用之前仅匹配两个匹配的方式相同ava?@MToma:您可以在答案的更新中找到一个Java工作示例。谢谢。再问一个问题:我希望(\d{2,3})不是(\d+);我可以这样做吗?@MToma:当然,您只需要将表达式更改为:(?)?
strExample = " 123c12de34 ";
(?:^|(?<=\D))(\d{2,3})(?=\D|$)
public class StackOverflow32336833 {
public static String text;
public static String pattern;
static {
text = "123c12de34";
pattern = "(?<=\\A|\\D)(\\d+)";
}
public static void printMatches(String text, String pattern) {
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println(m.group());
}
}
public static void main(String[] args) {
printMatches(text, pattern);
}
}