例子:
package com.h3c.pattern;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
/*String filetext = "//@张小名: 25分//@李小花: 43分//@王力: 100分";
Pattern p = Pattern.compile("\\@(.*?)\\:");//正则表达式,取=和|之间的字符串,不包括=和|
Matcher m = p.matcher(filetext);
while(m.find()) {
System.out.println(m.group(0));//m.group(1)不包括这两个字符
} */
String info = "Subslot 1: \r\nsdfas fsfafsfsf\r\n Subslot 2:sd \r\nf6asf4sfsf5s4f2s\r\n Subslot 3: 5154dsfa5sfd4sa5f <s14sdfsf54sf>";
//String reg = "((Subslot \\d.*)((Subslot \\d)|(<.*>)))";
String reg = "(Subslot\\s*\\d(.*?)((?=(subslot\\s*\\d+))|(?=(\\s*<))))";
Pattern p = Pattern.compile(reg,Pattern.DOTALL|Pattern.MULTILINE|Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(info);
while (m.find()) {
System.out.println("--------------");
System.out.println(m.group());
System.out.println("0:"+m.group(0));
System.out.println("1:"+m.group(1));
System.out.println("2:"+m.group(2));
//System.out.println("3:"+m.group(3));
//System.out.println(m.group(4));
}
}
public void pattern(){
String digitNumStr = "11A11、22A22、33A33、44B44、55B55";
//String digitNumStr = "11A11";
Pattern digitNumP = Pattern.compile("(?<twoDigit>\\d{2})[A-Z]\\k<twoDigit>");
Matcher foundDigitNum = digitNumP.matcher(digitNumStr);
// Find all matches
while (foundDigitNum.find()) {
// Get the matching string
String digitNumList = foundDigitNum.group();
System.out.println(digitNumList);
}
}
}