diff --git a/FengHuang/src/main/java/UnitTest/TestRegex.java b/FengHuang/src/main/java/UnitTest/TestRegex.java index ccd3dc9..d0e6f4b 100644 --- a/FengHuang/src/main/java/UnitTest/TestRegex.java +++ b/FengHuang/src/main/java/UnitTest/TestRegex.java @@ -1,23 +1,46 @@ package UnitTest; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.CharsetUtil; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.util.ArrayList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestRegex { + public static void main(String[] args) { - String text = "应用心理学(6000元/年;以上体检要求,录取时以高考体检表为准)"; - String regex = "(.*?)\\((\\d+)元/年;(.*)\\)"; + //按输入顺序进行正则匹配 + List regExp = new ArrayList<>(); + regExp.add("(.*?)\\((\\d+)元/年;(.*)\\)"); + regExp.add("(.*?)\\((\\d+)元/年\\)"); - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(text); + //模拟需要处理的串 + String path = "D:\\dsWork\\FengHuang\\FengHuang\\src\\main\\java\\UnitTest\\TestRegex.txt"; + byte[] sb = FileUtil.readBytes(new File(path)); + //内存读写流 不用回收关闭 + ByteArrayInputStream byteArrayInputStream = IoUtil.toStream(sb); + String str1 = IoUtil.read(byteArrayInputStream, CharsetUtil.UTF_8); + String[] txtArray = str1.split("\r\n"); - if (matcher.find()) { - System.out.println("匹配成功!"); - System.out.println("专业名称:" + matcher.group(1)); - System.out.println("学费:" + matcher.group(2)); - System.out.println("其他要求:" + matcher.group(3)); - } else { - System.out.println("匹配失败!"); + for (int i = 0; i < txtArray.length; i++) { + String str = txtArray[i]; + for (int j = 0; j < regExp.size(); j++) { + String r1 = regExp.get(j); + Pattern pattern = Pattern.compile(r1); + Matcher matcher = pattern.matcher(str); + if (matcher.find()) { + System.out.println("匹配成功!"); + System.out.println("专业名称:" + matcher.group(1)); + System.out.println("学费:" + matcher.group(2)); + if (matcher.groupCount() >= 3) System.out.println("其他要求:" + matcher.group(3)); + break; + } + } } } } diff --git a/FengHuang/src/main/java/UnitTest/TestRegex.txt b/FengHuang/src/main/java/UnitTest/TestRegex.txt new file mode 100644 index 0000000..c0ac153 --- /dev/null +++ b/FengHuang/src/main/java/UnitTest/TestRegex.txt @@ -0,0 +1,3 @@ +应用心理学(6000元/年;以上体检要求,录取时以高考体检表为准) +数据科学与大数据技术(6000元/年;不能准确识别红、黄、绿、兰、紫各种颜色中任何一种颜色的导线、按键、信号灯、几何图形者,不予录取。以上体检要求,录取时以高考体检表为准) +俄语(6000元/年) \ No newline at end of file