一、正则表达式概述
1、什么是正则表达式
正则表达式可以用一些规定的字符来指定规则,并用来校验数据格式的合法性。
举个例子:校验一个qq号码是否正确,要求这个号码必须是6-12位之内,且全部为数字
package com.key.d14_packeg_01.zhengze;public class Regex {public static void main(String[] args) {String str = "578098429";System.out.println(checkQQ(str));System.out.println("-------------------");//用正则进行判断String str1 = "1230485";System.out.println(check_zhengze(str1));}/*** 判断QQ是否符合要求* (1)长度为6-12位* (2)全部为数字* @param qq* @return*/public static boolean checkQQ(String qq) {// 1、判断QQ号码是否为空,且长度是否满足要求if (qq == null || qq.length() > 12 || qq.length() < 6) {return false;}// 2、判断是否都为数字for (int i = 0; i < qq.length(); i++) {//取每一位的字符,chrchar c = qq.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}public static boolean check_zhengze(String qq){return qq != null && qq.matches("\\d{6,12}");}}
2、匹配规则

举个小例子:
package com.key.d14_packeg_01.zhengze;public class Regex1 {public static void main(String[] args) {/*** 正则表达式匹配一串字符*/System.out.println("fsldfcsdf897".matches("\\w{2,}"));/*** 匹配4位验证码,不能有"_"*/System.out.println("34VC".matches("[\\w&&[^_]]{4}"));//也可以用另一种方式System.out.println("34VC".matches("[0-9a-zA-Z]{4}"));}}
正则表达式实战

package com.key.d14_packeg_01.zhengze;import java.util.Scanner;public class RegexDemo {public static void main(String[] args) {/*** 1、校验手机号是否符合要求:11位,纯数字,必须是1开头,且第二位是3-9中的数字*/Scanner sc1 = new Scanner(System.in);System.out.println("请输入手机号:");String phone = sc1.next();if (phone.matches("1[3-9]\\d{9}")) {System.out.println("输入的手机号正确");}else {System.out.println("输入的手机号有误!");}/*** 2、校验邮箱是否符合要求* --xxxx@q.com* --xzzz@sangfor.com.cn*/Scanner sc2 = new Scanner(System.in);System.out.println("请输入邮箱:");String email = sc2.next();if (email.matches("[\\w&&[^_]]{1,20}@[\\w&&[^_]]{2,10}(\\.[\\w&&[^_]]{2,10}){1,2}")) { //[\w&&[^_]]{1,20}@[\w&&[^_]]{2,10}\.com/*** 为什么正则内的.之前要加两个'\'???* 因为.在正则匹配中表示匹配任意字符,为了告诉JAVA这就是个.所以要进行转义,将'.'改为'\.'又因为要告诉JAVA这个\就是个\所以要将'\.'改为'\\.'*/System.out.println("输入的邮箱正确");}else {System.out.println("输入的邮箱错误!");}}}
正则表达式在字符串方法中的应用

- 用split()进行字符串分割

- 用replaceAll进行字符串替换

利用正则表达式爬取信息(利用于爬虫)


