Java 正则表达式90%的程序员还不知道这个小技巧

彼岸草 彼岸草 2017年07月13日 15:45:26 阅读 318

有时候需要通过Java正则表达式提取某些字符串或标签中间的内容。通常使用matcher.group()会多匹配到额外的信息。

这时候,我们需要使用matcher.group(1)。

代码如下:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTester {
    public static void main(String[] args) {
        String testStr = "Hello,<text>my world!</text>";  
        Pattern p = Pattern.compile("<text>(.*)</text>");  
        Matcher m = p.matcher(testStr);  
        while(m.find()){
            // 全匹配,含前后的内容
            System.out.println(m.group());  
            // 只匹配正则表达式(.*)命中的内容
            System.out.println(m.group(1)); 
        }
    }
}

执行结果:

<text>my world!</text>
my world!


用户评论