正则表达式
Posted lyle-liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
正则表达式介绍: 1.什么是正则表达式? 正则表达式实际上就是一串字符串,只不过这个字符串匹配了一定的规则。 2.正则表达式的引入: qq号的校验规则: 1.全部都是数字 2.不能以0开头 3.长度在5-12之间 1.不使用正则表达式检验qq: public static boolean checkQQ(String qq) { //将字符串转换成字符数组 char[] arr = qq.toCharArray(); //遍历字符数组并进行判断 for (char c : arr) { //字符数组中有非数字元素,返回false if (!(c >= ‘0‘ && c <= ‘9‘)) { return false; } } //如果以0开头,返回false if (qq.startsWith("0")) { return false; } //长度判断 int length = qq.length(); if (length < 5 || length > 12) { return false; } //代码执行到这里,说明符合qq号规则 return true; } 2.使用正则表达式进行校验: public class RegEx { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true){ System.out.println("请输入QQ号:"); String qq = scanner.nextLine(); //使用正则表达式进行校验 String regex="[1-9]\d{4,11}"; System.out.println("是否符合qq号规则:"+qq.matches(regex)); System.out.println("=========分割线==================="); } } } 可以很明显的看出,使用正则表达式对字符串进行校验更加方便简洁。 3.常用正则表达式的使用: 1.字符类:注意[]只代表一个字符 1. [abc]:代表a或者b,或者c字符中的一个。 2. [^abc]:代表除a,b,c以外的任何字符。 3. [a-z]:代表a-z的所有小写字符中的一个。 4. [A-Z]:代表A-Z的所有大写字符中的一个。 5. [0-9]:代表0-9之间的某一个数字字符。 6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。 7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。 2.逻辑运算符: 1. &&:并且 2. | :或者 3.预定义字符:注意‘‘在使用的时候要使用两个‘\‘,因为要进行转义 1. "." : 匹配任何字符。 2. "d":任何数字[0-9]的简写; 3. "D":任何非数字[^0-9]的简写; 4. "s": 空白字符:[ x0Bf ] 的简写 5. "S": 非空白字符:[^s] 的简写 6. "w":单词字符:[a-zA-Z_0-9]的简写 7. "W":非单词字符:[^w] 4.数量词:‘X‘代表的是任意一个正则表达式 1. X? : 0次或1次 2. X* : 0次到多次 3. X+ : 1次或多次 4. X{n} : 恰好n次 5. X{n,} : 至少n次 6. X{n,m}: n到m次(n和m都是包含的) 5.分组:使用()进行分组: (ab){3}:ab作为一组,重复出现三次;
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性