又称为规则表达式。(英语:Regular Expression,在代码中常简写为regex,regexp或者RE)
特点:可以迅速地用极简单的方式达到对字符串的复杂控制。
使用:在java中正则表达式为String类型,被验证的内容同样为String类型,通过String类中的matches方法实现内容的匹配校验(matches方法会返回boolean值)。如“被验证内容”.matches(“正则表达式”)
语法规则:[内容限定]{长度限定} 可以只进行内容限定,没有指定长度限定默认长度为1。
[a]表示当前内容必须是字母a
public static void main(String[] args) {
String regex="[a]";
String content="a"; //这里只能是a长度为1
System.out.println(content.matches(regex));
}
[a-z0-9]表示内容可以是a-z之间的任意字母或者0-9之间的任意数字,不分先后;
public static void main(String[] args) {
String regex="[a-z]";
String content="a";//这里只能是小写a-z,而大写字母不行如果想可以[A-Z]而数字是[0-9]可以组合注意中间不能有空格
System.out.println(content.matches(regex));
}
[^abc]表示内容不能是a或b或c
长度限定:
固定长度:{固定长度值}
[a-z]{5}表示内容范围为小写字母a-z,且长度必须为5
范围长度:{最小长度值,最大长度值} 最小长度值必须给 如果允许没有用0代替 最大长度 值可以不给
[a-z]{2,}表示内容范围为小写字母a-z,且长度最小为2,最大长度无限制
[a-z]{0,2}表示内容范围为小写字母a-z,且长度最小为0,最大长度为2
长度限定符号:通过预定义符号完成长度限定
?:等同于{0,1}
+:等同于{1,}
*:等同于{0,}
public static void main(String[] args) {
String regex="[a-z]?";
String content="a";//可以是“”或“a-z”
System.out.println(content.matches(regex));
}
预定义字符:表示内容的限定,目的是为了简化内容的限定的定义
public static void main(String[] args) {
/** 常见的
* \d 匹配一个数字字符,等价于【0-9】
* \D 匹配一个非数字字符,等价于[^0-9]
* \n 匹配一个换行符
* \r 匹配一个回车符
* \s 匹配任何空白字符,包括空格,制表符,换页符等等
* \S 匹配任何非空白字符
* \t 匹配制表符
* \w 匹配包括下划线的任何单词字符。等价于[A-Za-z0-9_]
* \W 匹配任何非单词字符。等价于[^A-Za-z0-9_] 支持汉字哦
*/
String regex="\\d*";//在使用预定义字符需要在前面加转义字符 注:中间不能加空格
String content="1123123";
System.out.println(content.matches(regex));
}
正则表达式的组合定义
public static void main(String[] args) {
String regex="[a-z]{1}\\w{3,8}"; //表示必须以字母开头,最少长度为4,最大长度为8
String content="a234";
System.out.println(content.matches(regex));
}