2.正则表达式入门之普通字符匹配

2.正则表达式入门之普通字符匹配,第1张

2.正则表达式入门之普通字符匹配 1.最简单的正则表达式(字符串本身)

其实一个字符串本身就是一个正则表达式,它可以匹配和它相等的字符串
例如:

//此方法使用正则表达式模式替换,将所有符合正则表达式的部分替换为后面的字符串
String str1="哈哈,我是你爸爸";
str1=str1.replaceAll("哈哈","嗨嗨");
System.out.println(str1);

上面将str1中的 哈哈 匹配到 并换为 嗨嗨。

2.带有 s+ 的正则表达式

s只能匹配一个空格
s+ 可以匹配一个或多个空格
例子:

public static void main(String[] args) {
    String str="life is a fuck movie";
    boolean result=str.matches("life\sis\sa\sfuck\smovie");
    System.out.println(result);
}


上面的运行结果是打印出true

但是下面的例子是匹配不上的:

public static void main(String[] args) {
    String str="life is a fuck  movie";
    boolean result=str.matches("life\sis\sa\sfuck\smovie");
    System.out.println(result);
}

但是下面的运行结果是可以的:

public static void main(String[] args) {
    String str="life is  a  fuck  movie";
    boolean result=str.matches("life\s+is\s+a\s+fuck\s+movie");
    System.out.println(result);
}

3.正则表达式语法

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

在 Java 中, 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。
表示一位数字的正则表达式是 d,而表示一个普通的反斜杠是 。这点需要我们注意!!

System.out.print("\");    // 输出为 
System.out.print("\");  // 输出为 \
1).普通字符

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。
这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

[acb]

匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。
例子:

public static void main(String[] args) {
    String str="life is  a  fuck  movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("[aickv]");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }
}

运行结果:

[^abc]

匹配除了 […] 中字符的所有字符,例如 [^aeiou] 匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字母。

例子:

public static void main(String[] args) {
    String str="life is  a  fuck  movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("[^aickv]");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }

}

[a-z]

[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。
例子:

public static void main(String[] args) {
    String str="life is  a  fuck  movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("[a-z]");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }
}

[sS]

匹配所有。s 是匹配所有空白符,包括换行,S 非空白符,不包括换行。
例子1:

public static void main(String[] args) {
    String str="life is  a  fuck  movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("[^\s]");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }
}


例子2:

public static void main(String[] args) {
    String str="life is  a  fuck n movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("[\S]");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }

}

例子3:

public static void main(String[] args) {
    String str="life is  a  fuck n movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("[\S\s]");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }

}

w

匹配字母、数字、下划线。等价于 [A-Za-z0-9_]

例子:

public static void main(String[] args) {
    String str="life is  a  fuck _movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile("\w");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }

}

.

匹配除换行符(n、r)之外的任何单个字符,相等于 [^nr]。

例子:

public static void main(String[] args) {
    String str="life is  a  fuck _movie";
    //获得一个正则表达式对象
    Pattern p = Pattern.compile(".");
    //使用正则表达式对象处理指定字符串,并获得结果对象
    Matcher m = p.matcher(str);
    //从正则表达式结果对象中获得信息
    while (true){
        if(m.find()) {
            System.out.print(m.group());
        }else break;
    }

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5671433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存