正则表达式(Regex)规范及运用
本文介绍了Java正则表达式供小白编程爱好者借鉴,因为我也是学习者,这是我的一点学习经验和心得,如有错误,请指出。废话不多说,开始步入正题。(ps:创作不易,有喜欢的小伙伴请点赞支持,谢谢啦!)
Regex
- 一、语法格式(常用)
- 二、功能
- 三、匹配方式
- 四、分组
一、语法格式(常用)
在Java中:使用“ ”
在js中: 使用/ /
1. 字符:
类型 | 注释 |
---|---|
x | 字符x,列如‘a’,表达是字符a |
\\ | 反斜杠字符,用转义字符\修饰 |
\n | 换行 |
\r | 回车符 |
2. 字符类:
类型 | 注释 |
---|---|
[abc] | 表示abc中任意单个字符 |
[^abc] | 表示除了abc中任意单个字符 |
^[abc] | 表示abc中任意单个字符开头 |
[a-zA-Z] | 表示a到z,A到Z中任意单个字符 |
[0-9] | 表示0-9中任意单个数字 |
3. 边界适配器
类型 | 注释 |
---|---|
^ | 开头 |
$ | 结尾 |
\b | 单词边界 |
4. 预定义的字符类
类型 | 注释 |
---|---|
. | 除了换行符以外的单个字符 |
\d | 数字[0-9] |
\D | 非数字[0-9] |
\s | 空白字符 |
\S | 非空白字符 |
\w | 数字字母下划线[0-9a-zA-Z_] |
\W | 非数字字母下划线[^\w] |
5. 数量词
类型 | 注释 |
---|---|
x? | 表示x可以出现一次或一次也没有 |
x+ | 表示x至少出现一次 |
x* | 表示x可以出现零次或多次 |
x{n} | 表示x可以可以出现n次 |
x{n,} | 表示x至少出现n次 |
x{n,m} | 表示x至少出现n次,但不超过m次 |
二、功能
1. 判断功能
" ".matches(regex);
2. 分割功能
.split(regex);
3. 替换功能
.replace(regex,E);//这里E为替换元素
4. 获取功能
//Pattern与Matcher类的使用
三、匹配方式
三种匹配方式:
方式一:
bollean mc = "a".matcher(regex);//a为字符串
.
方式二:
boolean mc = Pattern.matcher(regex,"a");//a为字符串
.
方式三:
Pattern a = Pattern.compile(regex);//将正则表达式编译到模式当中 Matcher mc = a.matcher(a);//创建适配器bollean Mc = mc.mattches();
四、分组
public static void main(String[] args) {String s = "2021-01-06";Pattern p = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})");Matcher matcher = p.matcher(s);
// 使用find方法来匹配if(matcher.find()){// matcher.group() 返回的是整个串的数据System.out.println(matcher.group());//2021-01-06// 分组:通过索引来获取第几组,索引为从左往右数第几个 ( System.out.println(matcher.group(0));//2021-01-06System.out.println(matcher.group(1));//2021System.out.println(matcher.group(2));//01System.out.println(matcher.group(3));//06}}
}
以上是通过索引来查找,我们还可以通过去对应的字段来查找:
public static void main(String[] args) {String s = "2021-01-06";Pattern p = Pattern.compile("(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})");Matcher matcher = p.matcher(s);
// 使用find方法来匹配if(matcher.find()){// matcher.group() 返回的是整个串的数据System.out.println(matcher.group());//2021-01-06// 分组:通过分组别名获取对应字段数据值System.out.println(matcher.group("year"));//2021System.out.println(matcher.group("month"));//01System.out.println(matcher.group("day"));//06} }
}
好了,以上就是关于正则表达式的大致介绍,同学们快动手敲起代码来吧!!
正则表达式(Regex)规范及运用相关推荐
- Java中的正则表达式 regex
常用类解析:正则表达式 regex 前言 一.正则表达式 二.匹配规则 三.匹配任意字符 四.匹配数字 五.匹配常用字符 六.匹配空格字符 七.匹配非数字 八.重复匹配 九.正则表达式小总结 十.匹配 ...
- python正则表达regex_Python 正则表达式(RegEx)
版权所有,未经许可,禁止转载 正则表达式是组成搜索模式的字符序列. 正则表达式用于按指定的搜索模式搜索字符串. 正则表达式(RegEx)模块 Python有一个名为re的内置包,用来处理正则表达式. ...
- c++ regex 替换汉字_C++ - 正则表达式(regex) 替换(replace) 的 详解 及 代码
正则表达式(regex) 替换(replace) 的 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/1732163 ...
- c#中regex的命名空间_C#_详解C#正则表达式Regex常用匹配,使用Regex类需要引用命名空间 - phpStudy...
详解C#正则表达式Regex常用匹配 使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 一.利用Regex类实现验证 示例1:注释的代码所起 ...
- C# 正则表达式 Regex类的使用
1.检验数字的表达式 //数字Regex reg = new Regex(@"^[0-9]*$");//n位的数字Regex reg = new Regex(@"^\d{ ...
- Python零基础速成班-第13讲-Python正则表达式Regex
Python零基础速成班-第13讲-Python正则表达式Regex 学习目标 正则表达式 课后作业(4必做) 友情提示:将下文中代码拷贝到JupyterNotebook中直接执行即可,部分代码需要连 ...
- python正则表达式——regex模块
目录 1. 为了与re模块兼容,此模块具有2个行为 2. Unicode中不区分大小写的匹配:Case-insensitive matches 3. Flags 4. 组 5. 其他功能,如下表 参考 ...
- (四)boost库之正则表达式regex
正则表达式可以为我们带来极大的方便,有了它,再也不用为此烦恼 头文件: #include <boost/regex.hpp> 1.完全匹配 std::string str("ab ...
- C语言正则表达式regex
From: http://hi.baidu.com/david_jlu/blog/item/87ada1dbb9af6a60d0164eda.html 正则表达式在linux下应用非常广泛,经常使用s ...
- Boost学习之正则表达式--regex
来源:http://blog.chinaunix.net/uid-21222282-id-1829265.html 来源:http://www.cnblogs.com/undermoon/archiv ...
最新文章
- matlab利用数据求公式,matlab新手,求帮助!主要是如何将数据和公式导入
- TA 们放肆摇晃的青春尾巴
- Item 16: 让const成员函数做到线程安全
- 为什么我不建议你买保险?
- 基于AppDomain的插件式开发
- linux驱动 cdev,inode结构体
- 活动预告丨openGauss西安Meetup来啦!本周五见!
- 什么是线索评分?如何让线索评分发挥作用?
- 快速学懂pandas
- win10不能访问服务器共享文件夹权限,win10系统共享文件夹无法访问的解决方法...
- 论.NET反射、委托与模式关系 zt- -
- 芒格:如何面对投资中的巨大回撤?
- C# 访问MongoDB 通用方法类
- iOS面试题(多线程篇)
- 为什么手机打电话的时候不能同时上网?
- 前端最常用的移动App开发方式及技术栈详解
- Qt控件之toggle()、triggered()、clicked()——triggered发射信号无响应
- 怎么查询oracle归档模式,查看oracle数据库归档模式
- USB 4(USB 4.0)的设计规范(原版)
- 纸质签名转变为电子签名