最近在使用Java正则进行字符串匹配的时候需要得到所有匹配的内容,记下一下方法:
matcher.find()表示是否在指定的字符串中有匹配到的内容;
如果有匹配到,则通过matcher.group(i)循环输出所有匹配到的内容。
matcher.groupCount()表示匹配到的内容个数。
代码示例如下:
- String content = “你是否浓缩的v你噢吃顿饭2222内插法v”;
- //<a href=\"\/artist\/104331\/songlist\">
- String regex = "\\/artist\\\\/[0-9]+\\\\\\/songlist";
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(content);
- if(matcher.find()){
- for(int i=0; i<=matcher.groupCount(); i++){
- System.out.println(i+":"+matcher.group(i));
- }
- }
- List<String> getMatchers(String regex, String source){
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(source);
- List<String> list = new ArrayList<>();
- while (matcher.find()) {
- list.add(matcher.group());
- }
- return list;
- }
扫描二维码关注公众号,回复:
5308227 查看本文章
matcher.find()表示是否在指定的字符串中有匹配到的内容;
如果有匹配到,则通过matcher.group(i)循环输出所有匹配到的内容。
matcher.groupCount()表示匹配到的内容个数。
代码示例如下:
- String content = “你是否浓缩的v你噢吃顿饭2222内插法v”;
- //<a href=\"\/artist\/104331\/songlist\">
- String regex = "\\/artist\\\\/[0-9]+\\\\\\/songlist";
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(content);
- if(matcher.find()){
- for(int i=0; i<=matcher.groupCount(); i++){
- System.out.println(i+":"+matcher.group(i));
- }
- }
- List<String> getMatchers(String regex, String source){
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(source);
- List<String> list = new ArrayList<>();
- while (matcher.find()) {
- list.add(matcher.group());
- }
- return list;
- }