正则表达式

什么是正则表达式?

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

正则表达式的应用?

其实正则表达式的作用就是用来匹配字符串,所以其实他的应用也就是匹配字符串,比如可以获取字符串中的特定元素,判断字符串是否包含特定元素,判断字符串是否符合我们要求的格式等。

实际的例子就像是我们邮箱格式验证等等。

正则表达式的好处?

正则表达式的好处时非常明显的,在正常情况下我们需要对字符串的操作其实是非常繁琐的,对于格式验证,我们可能需要写一个非常繁琐的函数。而如果存在多种不同格式的验证,那么我们就需要编写大量的格式验证函数。而使用正则表达式就完全没有这样的情况,我们只需要编写正则表达式。然后和文本进行匹配就好了。

正则表达式的使用方式

这里不做详细的介绍

只是讲解一些比较简单的用法。

示例

a
ac
abc
abbc
abbbbbc
adc
addddc

对于以上给定的字符串匹配

样例一:限定符?

?表示前面的字符出现一次或者零次

正则表达式:ac?

匹配结果

样例二:限定符*

*表示前面的字符出现0次到多次

正则表达式:ab* c

匹配结果

样例三:限定符+

+表示前面的字符出现1次到多次

正则表达式:ab+c

匹配结果

样例四:限定符{}

{}可以表示前面一个字符串出现的次数

ab{2}c 表示b出现两次

ab{2,5}c 表示b出现2到五次

ab{2,}c 表示b至少出现两次

样例五:()

()可以将多个元素视为一个元素

比如对于样例:

我们希望能够匹配不同的重复元素

比如重复的abab

我们可以使用正则表达式:(ab){2}

匹配结果

样例六:或运算符

对于样例:

我们希望a后面不是b就是c

我们就可以使用正则表达式:a(b|c)

匹配结果

样例七:[]符号

[] 表示只能匹配在其中的元素

对于样例:

我们希望匹配a后面的元素在a-c范围的我们就可以使用

正则表达式:a[abc]

如果我们希望匹配所有a-z的所有元素

正则表达式:[a-z]

如果我们希望匹配所有a-z的字符和所有数字

正则表达式[a-z0-9]

样例八:^

^表示以外的运算符

对于

我们希望匹配所有除了数字的元素

正则表达式[ ^0-9]

练习样例

(1)

对于

<span><b>bbbbbbbbbbbbb</b></span>

我们希望匹配标签的部分

(2)

对于

#00
#ffffff
#ffaaff
#00hh00
#aabbcc
#000000
#fffffff

我们希望匹配正确的颜色表示方式

规则第一个字符必须是#,之后的字符必须是六个值,并且属于十六进制的范围(0-f)

答案

<.+?>

#[a-fA-F0-9]{6}\b

java中如何使用正则表达式

获取给定字符串中所有数字

 public static void main(String[] args) {
        String str="abc123abc123";
        String rule="[0-9]";
        Pattern pattern= Pattern.compile(rule);
        Matcher matcher=pattern.matcher(str);
        while(matcher.find()){
            System.out.println(matcher.group());
        }
    }

输出结果:

查询字符串中是否包含给定的规则

public class ZhengZe {
    public static void main(String[] args) {
        String str="abc123abc123";
        String rule=".*123.*";
        boolean is=Pattern.matches(rule,str);
        System.out.println(is);
    }
}

更多推荐

正则表达式的基本用法