你如何展示所有比赛?例如我有一个字符串“你好世界,你好吗”。 在这里,我必须获得字母'a'所在的所有位置。为此,我编写了一个示例java程序。但是这里只有start()和end()方法可用于匹配器。我如何获得中间结果?请解释一下..
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTestStrings {
public static void main( String args[] ){
String line = "Hello world and how are you a";
String pattern = "[a]";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println(m.start());
System.out.println(m.end());
} else {
System.out.println("No result foud");
}
}
}
答案 0 :(得分:4)
你可以多次拨打matcher.find()
,它会返回下一次出现。因此,只需将if
替换为while
,并在matchesFound
块内使用设置为true
的布尔标记while
,以便能够打印消息如果没有匹配。
答案 1 :(得分:2)
m.start()
和m.end()
将为您提供匹配器的起始索引和匹配器的结束索引。不匹配的值。你可以像这样打印所有匹配的。
while(m.find( )) {
System.out.println(m.start());
System.out.println(m.end());
System.out.println(m.group());
}