Java正则表达式初次使用心得
这是我第一次使用 Java正则表达式 有很多东西还不太理解,这里分享一下我的一些看法,欢迎大佬指正错误。
Pattern类和Matcher类
使用方法,Pattern类用于创建一个正则表达式,因为它的构造方法是私有的,所以不能直接创建pattern对象,需要通过Pattern.complie(String regex)创建。
用例:
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(\\d+)");
Matcher m = pattern.matcher("qq11cc22");
while(m.find()){//判断是否匹配成功
System.out.println(m.group());
}
}
/*输出结果为:
11
22
*/
捕获XML格式的数据
public static void main(String[] args) {
//数据源
String stprint = "<Message><ErrorMsgs>sucscesss</ErrorMsgs></Message>";
String ErrorMsg = "<ErrorMsgs>(.*?)</ErrorMsgs>";
Pattern pattern = Pattern.compile(ErrorMsg);
Matcher m = pattern.matcher(stprint);
while(m.find()){//判断是否匹配成功
System.out.println(m.group());//匹配的字符
System.out.println(m.group(1));//(.*?)里面捕获的字符
}
/*
输出的结果为:
<ErrorMsgs>sucscesss</ErrorMsgs>
sucscesss
*/
}
public static void main(String[] args) {
String stprint = "<ErrorMsgs AA='abcd' BB='qwer'/>";
String AA = ".*?AA='(.*?)'";
Pattern pattern = Pattern.compile(AA);
Matcher m = pattern.matcher(stprint);
while(m.find()){//判断是否匹配成功
System.out.println(m.group());//匹配的字符
System.out.println(m.group(1));//(.*?)里面捕获的字符
}
/*
输出的结果为:
<ErrorMsgs AA='abcd'
abcd
*/
}
public static void main(String[] args) {
String stprint = "<ErrorMsgs AA='abcd' BB='qwer'/>";
String AA = ".*?AA='(.*?)'.*?BB='(.*?)'";
Pattern pattern = Pattern.compile(AA);
Matcher m = pattern.matcher(stprint);
while(m.find()){//判断是否匹配成功
System.out.println(m.group());//匹配的字符
System.out.println(m.group(1));//(.*?)里面捕获的字符
System.out.println(m.group(2));//第二个(.*?)里面捕获的字符
}
/*
输出的结果为:
<ErrorMsgs AA='abcd' BB='qwer'
abcd
qwer
*/
}
我目前了解到的就这一点,欢迎大家一起来讨论