当前位置:萝卜系统 > 硬件软件教程 > 详细页面

51dev.com IT技术开发人员社区

51dev.com IT技术开发人员社区

更新时间:2023-06-21 文章作者:未知 信息来源:网络 阅读次数:

根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

java正则表达式详解_java正则表达式语法_java正则表达式概念

正则表达式使用单个字符串来描述和匹配与某个语法规则匹配的一系列字符串. 在搜寻器中解析html时,可以使用常规规则轻松提取信息

本文使用JAVA语言表示正则表达式.

模式说明

w匹配字母,数字,下划线

W匹配非字母,数字,下划线

s匹配任何空白字符java正则表达式详解,等同于[f]

java正则表达式概念_java正则表达式语法_java正则表达式详解

S匹配任何非空字符

d匹配任何数字java正则表达式详解,等于[0-9]

D匹配非数字字符

A匹配字符串的开头

匹配字符串的结尾. 如果有换行符,则仅匹配换行符之前的结尾字符串

z匹配字符串的结尾,如果有换行符,它也会匹配换行符

java正则表达式详解_java正则表达式语法_java正则表达式概念

G匹配最后一个匹配位置

匹配换行符

匹配标签

^匹配字符串的开头

$匹配字符串的结尾

. 匹配换行符以外的任何字符

java正则表达式语法_java正则表达式详解_java正则表达式概念

[^…]不在[]中的字符,例如[^ abc]与a,b,c以外的其他字符匹配

*匹配0个或更多表达式

+匹配一个或多个表达式

?以非贪婪方式匹配零个或上述正则表达式片段之一

()匹配括号中的表达式,也代表一个组

{n}精确匹配n个前面的表达式,例如d {n},代表n个数字

java正则表达式概念_java正则表达式语法_java正则表达式详解

{n,m}以贪婪的方式将n匹配到前一个正则表达式定义的句段的m到m倍

代码战斗:

public class RegexAction {
    public static void main(String[] args) {
        String s = "Hello 123 4567 World_This is a Regex Demo";
        //match_1(s);
        //match_2(s);
        //match_3(s);
        //match_4(s);
        //match_5(s);
        match_6(s);
    }
    private static void match_1(String s) {
        Pattern pattern = Pattern.compile("^Hello\s\d\d\d\s\d{4}\s\w{10}");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find()) {
            System.out.println(matcher.group(0));
        }
    }
    private static void match_2(String s) {
        Pattern pattern = Pattern.compile("Hello\s(\d+)\s\d{4}\s\w{10}");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find()) {
            System.out.println(matcher.group(0));  //匹配到的整个结果
            System.out.println(matcher.group(1));  //匹配到的第一个括号中的结果
        }
    }
    private static void match_3(String s) {
        Pattern pattern = Pattern.compile("Hello\s(\d*)\s\d{4}\s\w{10}");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find()) {
            System.out.println(matcher.group(0));  //匹配到的整个结果
            System.out.println(matcher.group(1));  //匹配到的第一个括号中的结果
        }
    }
    private static void match_4(String s) {
        Pattern pattern = Pattern.compile("Hello.*Demo");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find()) {
            System.out.println(matcher.group(0));  //匹配到的整个结果
        }
    }
    /**
     * 贪婪匹配
     * 匹配中间数字,只能得到7
     * .*会尽可能多的匹配数据
     * @param s
     */
    private static void match_5(String s) {
        Pattern pattern = Pattern.compile("Hello.*(\d+).*Demo");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find()) {
            System.out.println(matcher.group(1));  //匹配到的整个结果
        }
    }
    /**
     * .*?非贪婪匹配
     * @param s
     */
    private static void match_6(String s) {
        Pattern pattern = Pattern.compile("Hello.*?(\d+).*Demo");
        Matcher matcher = pattern.matcher(s);
        if(matcher.find())  {
            System.out.println(matcher.group());
            System.out.println(matcher.group(1));
        }
    }
    
	/**
     * 正则表达式字符串也可以不编译直接使用
     * @param s
     */
    private static void match_7(String s) {
        String regex = "Hello.*?(\d+).*Demo";
        boolean flag = s.matches(regex);
        System.out.println(flag);
    }
}

模式类

模式对象是正则表达式的编译表示形式

火柴人班

Matcher对象是一个解释并匹配输入字符串的引擎

find()方法

尝试找到与模式匹配的输入序列的下一个子序列,直到搜索到输入序列的末尾为止

您可以从指定位置匹配查找(int开头)


本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-264551-1.html



温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html