正则表达式: 了解

具有标记语言的语法格式
严谨

用正则的语法来描述具有特殊规则字符串
是一个门语言,具有自己的语法
作用:查找,匹配,校验,分隔...

java中使用正则

1.String类中一些支持正则表达式语法的方法
     String[] split(String regex) 将此字符串拆分为给定 regular expression的匹配 项 。
     String replaceAll(String regex, String replacement) 将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。
     String replaceFirst(String regex, String replacement) 将给定替换的给定 regular expression匹配的此字符串的第一个子字符串替换。
     boolean matches(String regex) 判断此字符串是否与给定的 regular expression匹配。
2.模式器 Pattern
    匹配器 Matcher 
代码:

public class Class002_Regex {
 public static void main(String[] args) {
     String reg=".{3}(a{1,2}\\d{2})(hello|hi)";
     String str="asdaa12hellodsaa34hi";
     //1. String类中一些支持正则表达式语法的方法
     System.out.println(Arrays.toString(str.split("\\.")));
     System.out.println(str.replaceAll("\\.","*"));
     //boolean matches(String regex) 判断此字符串是否与给定的 regular expression匹配。--->完整匹配
     if (str.matches("\\d{3}")){
         System.out.println("匹配");
     }
     //2.模式器 Pattern
    Pattern pattern= Pattern.compile(reg);
     Matcher matcher=pattern.matcher(str);
     //find() 判断是否存在满足条件的子串
     while (matcher.find()){
         //group() 获取当前查找到的子串
         System.out.println("查找到的子串"+matcher.group()+"--->"+matcher.group());
         //group(index) 获取当前子串中第几组缓存的内容
         System.out.println("分组缓存内容: "+matcher.group(1)+"--->"+matcher.group(2));
     }
}
 }


 

XML:标记语言

标记语言的注释

1.xml是一个标记语言  <英文单词>
 2.xml文件中标签可以根据需求自定义
 3.xml文件的首行必须存在版本声明
 4.xml文件中有且仅有一个跟标签|根元素 Persons,所有的子内容都定义在根元素中
 5.xml的作用: 传输,存储,配置,解析...
 6.属性: 开始标签上定义属性
     属性可以帮助更完整|完善的展示标签的作用
 7.标签的分类:
     单标签|自闭和标签
     双标签|闭合标签
xml文件 : 识别xml语言格式

xml文件的作用:传输,存储,配置,解析...

xml的解析

语法定义:可以自定义标签 根据约束规范标签的定义语法 DOM SAX DOM4J

1.查询,遍历 1)创建流,加载xml文件 2)获取Document对象 3)遍历 2.写出 3.创建 4.删除或者修改

代码:


public class Class002_XML {
public static void main(String[] args) throws DocumentException, IOException {
    writeToFile(update(getDocument("src/yjxxt.xml")),"src/yjxxt.xml");

}

//修改与删除
public static Document update(Document document){
    //1.找到id属性值为2的元素,删除子标签tuition
    Element root = document.getRootElement();
    List<Element> list = root.elements();
    list.forEach(e->{
        String idValue = e.attributeValue("id");
        if(idValue.equals("2")){
            //父节点.remove(子节点)
            Element removeElement = e.element("tuition");
            e.remove(removeElement);
        }
    });
//2.找到shyjxxt,学费涨价1w
    Element shyjxxt = root.element("shyjxxt");
    Element tuition = shyjxxt.element("tuition");
    tuition.setData(Integer.parseInt(tuition.getText())+10000);
    return document;
}
//写出
public static void writeToFile(Document document,String path) throws IOException {
    //1.  构建XMLWriter
    XMLWriter writer = null;
    //2.构建输出格式
    OutputFormat format = OutputFormat.createPrettyPrint();
    writer = new XMLWriter(new FileWriter(path),format);
    //3.写出
    writer.write(document);
    //4.刷出
    writer.flush();
    //5.关闭
    writer.close();
}
//写出
public static void writeToFile(Document document,String path) throws IOException {
    //1.  构建XMLWriter
    XMLWriter writer = null;
    //2.构建输出格式
    OutputFormat format = OutputFormat.createPrettyPrint();
    writer = new XMLWriter(new FileWriter(path),format);
    //3.写出
    writer.write(document);
    //4.刷出
    writer.flush();
    //5.关闭
    writer.close();
}
public static Document createDocument(){
    //1.创建Document
    Document document = DocumentHelper.createDocument();
    //2.添加根元素
    Element root = document.addElement("yjxxt");
    //3.根元素中添加子元素
    Element shyjxxt = root.addElement("shyjxxt");
    Element bjyjxxt = root.addElement("bjyjxxt");

    shyjxxt.addElement("location").addText("上海市浦东新区");
    shyjxxt.addElement("date").addText("2021-10-10");
    bjyjxxt.addElement("location").addText("北京市朝阳区");
    bjyjxxt.addElement("date").addText("2022-12-12");

    return document;
}

//遍历
public static void print(Document document){
    // 3)遍历
    //获取根节点
    Element root = document.getRootElement();
    System.out.println("根元素标签名"+root.getName());
    //获取子元素
    List<Element> list =  root.elements();
    //遍历子元素
    list.forEach(e->{
        System.out.println("标签名 : "+e.getName() + "-->id属性 = "+e.attributeValue("id"));
        //迭代所有子元素的迭代器
        Iterator<Element> it =  e.elementIterator();
        while(it.hasNext()){
            Element ele = it.next();
            System.out.println(ele.getName()+"---->"+ele.getData());
        }
    });
}
//加载xml文件 , 获取Docuemnt
public static Document getDocument(String path) throws DocumentException {
    //1)创建流,加载xml文件
    SAXReader reader = new SAXReader();
    // 2)获取Document对象
    Document document = reader.read(new File(path));
    return document;
}
}
xml约束–> 了解