正则表达式介绍
什么是正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
正则表达式的作用
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个“规则字符串"用来表达对字符串的一种过滤逻辑。使用特殊语法来表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式。
正则表达式特点
- 灵活性、逻辑性和功能性非常的强;
- 可以迅速地用极简单的方式达到字符串的复杂控制
- 对于刚接触的人来说,比较晦涩难懂
Java中正则表达式的使用
在Java中正则表达式为string类型,被验证的内容同样为string类型。通过string类中的matches方法实现内容的匹配校验。如:“被验证内容”.matches(“正则表达式”)
通过 regex来定义字符规则
通过 content来表示输入字符
通过content.matches(regex)来判断输入字符串是否符合规则返回true或者false
正则表达式语法规则
正则表达式语法规则:[内容限定]{长度限定}
内容限定可以单独存在
内容限定
在定义限定内容规则时,如果没有指定长度限定,那么默认长度为1。
单个字符限定
例:[a]:表示当前内容必须是字母a
范围字符限定
例:[a-z0-9]:表示内容可以是a-z之间的任意字母或者0-9之间的任意数字,不分先后。
取反限定
例:[^abc]:表示内容不能是a或b或c。
长度限定
在正则表达式中通过{ }来限定内容长度。
固定长度:{固定长度值}
范围长度:{最小长度值,最大长度值}
[a-z]{5}:表示内容范围为小写字母a到z且长度必须为5
[a-z]{2,8}:表示内容范围为小写字母a到z且长度在2到8之间,包含2与8
[a-z]{2,}:表示内容范围为小写字母a到z且最小长度为2,最大长度无限制
[a-z]{0,2}:表示内容范围为小写字母a到z且最小长度为0,最大长度为2
长度限定符号
长度限定符号是指通过预定义符号来完成长度限定。
?:零次或一次。等同于{0,1}
+:一次或多次。等同于{1,}
*:零次或多次。等同于{0,}
预定义字符
-
. 任何字符
-
\d 数字:[0-9]
-
\D 非数字: [^0-9]
-
\s 空白字符:[ \t\n\x0B\f\r]
-
\S 非空白字符:[^\s]
-
\w 单词字符:[a-zA-Z_0-9]
-
\W 非单词字符:[^\w]