java如何能截取正则中的字符串,请看内容

比方说我有字符串数组分别是test123wqyeaasdasd,asdtesxxxt123qwdawqe,ajsdtsa123asda,asdateshwt12312aqwe

正则是te*t123[截取]a,
如何能将第一个的wqye,第二个的qwd,第三个没有匹配不截取,第四个12
这样截取下来啊

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatcherDemo {
    public static void main(String[] args) {
        String[] strings = new String[] {
                "test123wqyeaasdasd",
                "asdtesxxxt123qwdawqe",
                "ajsdtsa123asda",
                "asdateshwt12312aqwe" };
        Pattern pattern = Pattern.compile("te.*?t123(.*?)a");
        for (String string : strings) {
            Matcher matcher = pattern.matcher(string);
            if (matcher.find()) {
                System.out.println(string + "    匹配成功    " + matcher.group(1));
            } else {
                System.out.println(string + "    匹配失败");
            }
        }
    }
}

输出:

test123wqyeaasdasd    匹配成功    wqye
asdtesxxxt123qwdawqe    匹配成功    qwd
ajsdtsa123asda    匹配失败
asdateshwt12312aqwe    匹配成功    12

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
te.*?123(.*?)a
group(1)里面的就是你要取的字符
相似回答