java中正则表达式的使用

本文介绍Java中正则表达式的使用方法,并通过实例演示如何验证163邮箱格式及IP地址合法性。涵盖正则表达式的基础定义、常用符号及特殊字符的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中正则表达式的使用


定义

正则表达式(Regular Expression)就是用某种模式去匹配一类字符串的公式。

例子

目的:检查一段字符串是否符合163邮箱的要求(检查一段字符串是不是163邮箱)
要求:邮箱需要以字母开头,长度在6~18个字符,可使用字母 || 数字 || 下划线
正则:^[a-zA-Z]\w{5,17}@163.com
解释:
1. ^: 表示以什么开头
2. [a-zA-Z]: 表示从a~z || A~Z中的任一字符
3. \w: 表示单词字符,与[a-zA-Z_0-9]相同,即a~z || A~Z || 0~9的任一字符
4. {5,17}: 表示出现次数n,5≤n≤17
5. @163.com: 表示尾缀是163邮箱
java如何实现:

String regex = "^[a-zA-Z]\\w{5,17}@163.com";//这里需要转义字符
String testText = "test@163.com";
boolean isMatched = testText.matches(regex);    //判断text是否符合regex规则
System.out.println(isMatched);

常用正则符号

参考

正则解释
字符类
[abc]a或b或c
[^abc]除了abc之外的任何字符
[a-zA-Z]从a~z或者从A~Z
[a-d[m-p]]a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]d、e 或 f(交集)
[a-z&&[^bc]]a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
.任何字符(与行结束符可能匹配也可能不匹配)
\d数字:[0-9]
\D非数字: [^0-9]
\s空白字符:[ \t\n\x0B\f\r]
\S非空白字符:[^\s]
\w单词字符:[a-zA-Z_0-9]
\W非单词字符:[^\w]
边界匹配器
^行的开头
$行的结尾
\b单词边界
\B非单词边界
\A输入的开头
\G上一个匹配的结尾
\Z输入的结尾,仅用于最后的结束符(如果有的话)
\z输入的结尾
数量词(Greedy策略)
X?X,一次或一次也没有
X*X,零次或多次
X+X,一次或多次
X{n}X,恰好 n 次
X{n,}X,至少 n 次
X{n,m}X,至少 n 次,但是不超过 m 次
逻辑运算符
XYX 后跟 Y
X|YX 或 Y
(X)X,作为捕获组

增加一组判断ip地址是否合法的正则:
((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
转载请注明出处http://blog.youkuaiyun.com/zifeng1203s/article/details/44020159

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值