正则表达式

正则表达式

1. 快速入门

1.1 为什么要学习正则表达式

1.1.1 极速体验正则表达式威力

  1. 提取文章中所有的英文单词

    package com.song.regexp;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 体验正则表达式的威力,给我们文本处理带来了哪些便利
     */
    public class Regexp_ {
        public static void main(String[] args) {
    
            //假定我们编写了爬虫,从百度页面得到了如下文本
            String content = "Java平台由Java虚拟机(Java Virtual Machine)和Java " +
                    "应用编程接口(Application Programming Interface、简称API)构成。" +
                    "Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。" +
                    "在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。" +
                    "Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。" +
                    "Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。";
    
            //现要求提取文章中所有的英文单词
            //(1) 传统方式:使用遍历方式,代码量大且效率不高
            //(2) 正则表达式技术
    
            //1.先创建一个Pattern对象(一个模式对象)
            //  可以理解为正则表达式对象
            Pattern pattern = Pattern.compile("[a-zA-Z]+");
            //2.创建一个匹配器对象
            //理解: 就是 matcher 匹配器按照 pattern(模式/模样),到 content 文本中去匹配
            Matcher matcher = pattern.matcher(content);
            //3.可以开始循环匹配
            while (matcher.find()){
                //匹配内容,文本,放到 m.group(0)
                System.out.println("找到:"+matcher.group(0));
            }
        }
    }
    
  2. 提取文章中所有的数字

    package com.song.regexp;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 体验正则表达式的威力,给我们文本处理带来了哪些便利
     */
    public class Regexp_ {
        public static void main(String[] args) {
    
            //假定我们编写了爬虫,从百度页面得到了如下文本
            String content = "Java平台由Java虚拟机(Java Virtual Machine)和Java " +
                    "应用编程接口(Application Programming Interface、简称API)构成。" +
                    "Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。" +
                    "在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。" +
                    "Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。" +
                    "Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。";
    
            //现要求提取文章中所有的英文单词
            //提取文章中所有的数字
            //(1) 传统方式:使用遍历方式,代码量大且效率不高
            //(2) 正则表达式技术
    
            //1.先创建一个Pattern对象(一个模式对象)
            //  可以理解为正则表达式对象
            //Pattern pattern = Pattern.compile("[a-zA-Z]+");
            Pattern pattern = Pattern.compile("[0-9]+");
            //2.创建一个匹配器对象
            //理解: 就是 matcher 匹配器按照 pattern(模式/模样),到 content 文本中去匹配
            Matcher matcher = pattern.matcher(content);
            //3.可以开始循环匹配
            while (matcher.find()){
                //匹配内容,文本,放到 m.group(0)
                System.out.println("找到:"+matcher.group(0));
            }
        }
    }
    
  3. 提取文章中所有的英文单词和数字

    package com.song.regexp;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    /**
     * 体验正则表达式的威力,给我们文本处理带来了哪些便利
     */
    public class Regexp_ {
        public static void main(String[] args) {
    
            //假定我们编写了爬虫,从百度页面得到了如下文本
            String content = "Java平台由Java虚拟机(Java Virtual Machine)和Java " +
                    "应用编程接口(Application Programming Interface、简称API)构成。" +
                    "Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。" +
                    "在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。" +
                    "Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。" +
                    "Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。";
    
            //现要求提取文章中所有的英文单词
            //提取文章中所有的数字
            //提取文章中所有的英文单词和数字
            //(1) 传统方式:使用遍历方式,代码量大且效率不高
            //(2) 正则表达式技术
    
            //1.先创建一个Pattern对象(一个模式对象)
            //  可以理解为正则表达式对象
            //Pattern pattern = Pattern.compile("[a-zA-Z]+");
            //Pattern pattern = Pattern.compile("[0-9]+");
            Pattern pattern = Pattern.compile("([a-zA-Z]+)|([0-9]+)");
            //2.创建一个匹配器对象
            //理解: 就是 matcher 匹配器按照 pattern(模式/模样),到 content 文本中去匹配
            Matcher matcher = pattern.matcher(content);
            //3.可以开始循环匹配
            while (matcher.find()){
                //匹配内容,文本,放到 m.group(0)
                System.out.println("找到:"+matcher.group(0));
            }
        }
    }
    
  4. 提取百度热榜 标题

正则表达式_第1张图片

package com.song.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 体验正则表达式的威力,给我们文本处理带来了哪些便利
 */
public class Regexp_ {
    public static void main(String[] args) {

        //假定我们编写了爬虫,从百度页面得到了如下文本
        /*
        String content = "Java平台由Java虚拟机(Java Virtual Machine)和Java " +
                "应用编程接口(Application Programming Interface、简称API)构成。" +
                "Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。" +
                "在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。" +
                "Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。" +
                "Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。";
         */
        String content = "

你可能感兴趣的:(正则表达式)