匹配器不 return 匹配的正则表达式,而是 return 组 (0) 中的整个字符串 (Java)
Matcher doesn't return the matched regex, instead returns whole string in group(0) (Java)
我面临的问题是,按照 link、Using Regular Expressions to Extract a Value in Java 的问题,我无法提取正确的字符串组
Pattern p = Pattern.compile("I have .*");
Matcher m = p.matcher("I have apples");
if(m.find()){
System.out.println(m.group(0));
}
我得到的:
I have apples
我想得到的:
apples
我也试过询问 m.group(1)
但它抛出了一个异常。
我该怎么办?
您必须定义一个捕获组才能使 m.group(...)
正常工作。
将模式更改为
Pattern p = Pattern.compile("I have (.*)");
m.group(0)
'denotes the entire pattern'
m.group(1)
现在 returns 预期 'apple'
我面临的问题是,按照 link、Using Regular Expressions to Extract a Value in Java 的问题,我无法提取正确的字符串组
Pattern p = Pattern.compile("I have .*");
Matcher m = p.matcher("I have apples");
if(m.find()){
System.out.println(m.group(0));
}
我得到的:
I have apples
我想得到的:
apples
我也试过询问 m.group(1)
但它抛出了一个异常。
我该怎么办?
您必须定义一个捕获组才能使 m.group(...)
正常工作。
将模式更改为
Pattern p = Pattern.compile("I have (.*)");
m.group(0)
'denotes the entire pattern'
m.group(1)
现在 returns 预期 'apple'