java之正则表达式
2019-05-10 06:07:26来源:博客园 阅读 ()
内容目录
- 正则表达式介绍
- 正则表达式重要类
- 通配符介绍
- 捕获组
- 实例
正则表达式介绍:
用于搜索或处理文本
正则表达式重要类:
- 正则表达式中设计两个中的类,分别是 Pattern和Matcher
- Pattern是正则表达式的编译类,用于编译表达式;该类没有公共的构造方法,只能通过Pattern p = Pattern.compile(regex) 来获取
- Matcher对象是增则表达式的匹配类,正则表达式编译好后用于匹配文本。
通配符介绍:
\ : 转义字符,可以匹配特殊符号或者元字符,"\\"匹配"\",“\(”匹配“(”,“.”匹配"." 等
?:匹配子表达式零次或一次
*:匹配子表达式0次或多次
+:匹配子表达式1次或多次
{n}:n为非负整数,表达式匹配n次,比如:[A-Za-z0-9_]{10}匹配字符数字下划线3位,即可以匹配a2_、_2b,不能匹配超过3位的字符串
{n,}:n为非负整数,表达式匹配至少n次,如果是{0,}等同于*,如果是{1,}等同于+,如果是{0,1}等同于?
{n,m}:n,m均为非负整数,且n<=m
\b:匹配一个边界,比如:cat\b可以匹配bbcat,但不能匹配bbcatb
\B:匹配非边界字符,比如:cat\B可以匹配bbcatb,但不能匹配bbcat
\d:匹配一个数字字符,等价于[0-9]
\D:匹配一个非数字字符,等价于[^0-9]
\s:匹配空白字符,比如空格,制表符等
\S:匹配任何非空白
\w:匹配字符数字下划线,等价于[A-Za-z0-9_]
\W:匹配非字母数字下划线,等价于[^A-Za-z0-9_]
捕获组:
从表达式左侧开始,每遇到一个左括号“(” 记作一个分组,编号从1开始,编号为0时代表整个表达式
实例:
1.匹配用户名:
//匹配用户名 public void regexUser() { String regex = "^(\\w){3,10}$";//相当于^[A-Za-z0-9_]{3,10} String input = "aaaa_11235"; boolean isMatch = Pattern.matches(regex, input); if (isMatch) { System.out.println("MATCH SUCCESS"); }else{ System.out.println("MATCH FAILURE"); } }
2.捕获组:public class GroupTest2 {
public static void main(String[] args) { String regex = "^((\\d{4})-(\\d{2}))-(\\d{2})$"; String input = "2019-01-02"; Pattern p = Pattern.compile(regex);//编译表达式 Matcher m = p.matcher(input); //匹配输入值 if (m.find()) {//是否匹配 int count = m.groupCount();//捕获组数量 for (int i = 0; i <= count; i++) { System.out.println(m.group(i)); } } } }
//输出值
2019-01-02
2019-01
2019
01
02
3.捕获组命名
//捕获组命名 public static void groupMM(){ String regex = "^(?<ym>(?<year>\\d{4})-(?<month>\\d{2}))-(?<date>\\d{2})$"; String input = "2019-01-02"; Pattern p = Pattern.compile(regex);//编译表达式 Matcher m = p.matcher(input); //匹配输入值 if (m.find()) {//是否匹配 System.out.println(m.group("ym")); System.out.println(m.group("year")); System.out.println(m.group("month")); System.out.println(m.group("date")); } }
//输出值
2019-01
2019
01
02
原文链接:https://www.cnblogs.com/wqk66/p/10842462.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash