(二十)正则表达式
- IT业界
- 2025-08-20 16:48:02

目录
前言:
1.概述:
2.正则表达式体验:
3.正则表达式字符
4.正则表达式在字符串方法中的使用
5.代码演示:
6.正则表达式支持爬取信息
7.代码演示:
前言:
正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开来的,后来在广泛运用于Scala 、PHP、C# 、Java、C++ 、Objective-c、Perl 、Swift、VBScript 、Javascript、Ruby 以及Python等等。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
1.概述:正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性。
2.正则表达式体验:需求:
加入现在要求校验一个QQ号码是否正确,6位及20位之内,必须全部是数字。
/**正则表达式(regex) :可以用一些规定的字符来制定规则,并用来经检验数据格式的合法性 * */ public class regex_Demo1 { public static void main(String[] args) { //校验QQ号,必须全部是数字6-20位 System.out.println(checkQQ("251410401102")); System.out.println(checkQQ("12841")); System.out.println(checkQQ("13929jfuhfuc")); System.out.println(checkQQ(null)); System.out.println("=============================="); System.out.println(checkQQ2("251410401102")); System.out.println(checkQQ2("12841")); System.out.println(checkQQ2("13929jfuhfuc")); System.out.println(checkQQ2(null)); } public static boolean checkQQ2(String qq){ //正则表达式 return qq != null && qq.matches("\\d{6,20}");//只能是数字 } public static boolean checkQQ(String qq) { //1、判断QQ号的长度是否满足要求 if (qq == null || qq.length()<6||qq.length()>20) { return false; } //2、判断是否全部是数字,不是则返回false for (int i = 0; i <qq.length() ; i++) { char ch = qq.charAt(i); //判断这个字符是否不是数字,不是数字直接返回false if (ch<'0'||ch>'9'){ return false; } } return false; } } 3.正则表达式字符3.1字符类(默认匹配一个字符)
3.2预定义的字符类(默认匹配一个字符)
3.3贪婪的量词(配合匹配多个字符)
3.4字符串对象提供了匹配正则表达式规则的API
4.正则表达式在字符串方法中的使用
5.代码演示: public class regex_Demo2 { public static void main(String[] args) { //1.分割 String name = "小路dhfadk蓉儿llvok武则天"; String[] arrs =name.split("\\w+"); for (int i = 0; i < arrs.length; i++) { System.out.println(args[i]); } String arrs2 = name.replaceAll("\\w+"," "); System.out.println(arrs2); } } 6.正则表达式支持爬取信息 7.代码演示: import java.util.regex.Matcher; import java.util.regex.Pattern; //正则表达式爬取信息 public class regex_Demo3 { public static void main(String[] args) { //定义内容 String rs = "黑马程序员JAVA,电话:020-123938,邮箱:2683857059@qq ,黑马程序员python,电话:18765832633,020100323 邮箱:1189231782@qq " +"黑马程序员CSS,电话:400-100-3233,邮箱:39184185@.qq "; //定义爬取规则 String regex="(\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2})| (1[3-9]\\d{9})" + "|(0\\d{2,6}-?\\d{5,20})|(400-?\\d{3,9}-?\\d{3,9})";//爬取邮箱和手机号 //1、编译正则表达式成为一个匹配规则对象 Pattern pattern = Pattern pile(regex); //2、通过匹配规则得到一个匹配数据内容的匹配器对象 Matcher matcher = pattern.matcher(rs); //3、通过匹配器去内容中爬取信息 while(matcher.find()){ System.out.println(matcher.group()); } } }
上一篇
普通土万象