正则表达式

正则表达式是用于字符串匹配和校验的工具。在Java中,String类提供了matches()方法进行正则匹配。本文介绍了正则表达式的常用语法,如字符类、预定义字符类和数量控制,并给出了QQ号、手机号和邮箱的正则验证示例。此外,还提到了String类的replaceAll()和split()方法在处理字符串时的应用。
摘要由CSDN通过智能技术生成

正则表达式

正则表达式本质上就是字符串,可以用于指定一些规则,来校验其他字符串

Java中String类提供进行正则匹配的函数matches()

String s = "规则";
"需要校验的字符串".matches(s);

语法

  • []:对一个字符进行匹配
  • ^:表示除外
  • -:可以表示范围
  • &&:交集
  • (正则):表示一个正则组
  • |:多个正则表达式写在一起,用|分割

1. 字符类

  • [abc]:只能是abc
  • abc等价于[a][b][c]

在这里插入图片描述

  • [^abc]:除了abc之外的所有字符

请添加图片描述

  • [a-zA-Z]:从az,以及从AZ

在这里插入图片描述

  • [a-z&&[def]]a-z[def]的交集
  • [a-z&&[^bc]]a-z除了bc

2. 预定义字符类

  • .:代表任意字符
  • \d:代表任意数字,等价于[0-9]
  • \D:表示任意非数字,等价于[^0-9]
  • \s:空白字符
  • \S:除空白字符,等价于[^\s]
  • \w:单词字符类,包括a-zA-Z0-9和下划线_,等价于[0-9a-z_A-Z]
  • \W:非单词字符类,等价于[^\w]

在这里插入图片描述

3. 数量

  • X+X出现一次或多次
  • X?X出现0次或一次
  • X*X出现任意次数
  • X{n}X恰好出现n
  • X{n,}X至少出现n
  • X{n,m}X至少出现n次,至多出现m
    在这里插入图片描述

练习

1. QQ号

  1. 不能0开头
  2. 全部都是数字
  3. 5-12
String regex = "[1-9]\\d{4,11}";

2. 手机号

  1. 必须1开头
  2. 第二位3-9
  3. 全部是数字,必须11
String regex = "[1][3-9]\\d{9}";

3. 邮箱正则

请添加图片描述

String regex = "[\\w]+[@][\\w&&[^_]]+([\\.][a-zA-Z]{2,3})+";

String类中与正则相关的方法

  • public String replaceAll(String regex, String newStr):对调用的字符串中,与regex匹配的部分,用newStr替换

请添加图片描述

  • public String[] split(String regex):根据regex匹配的结果,分割字符串,返回字符串数组

请添加图片描述

使用正则表达式做爬取

  1. 将正则表达式封装成一个Pattern对象
  2. 利用Pattern对象生成匹配器Matcher
  3. 调用匹配器的find()group()方法进行爬取

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值