正则表达式
来源:互联网 发布:java redis 模糊查询 编辑:程序博客网 时间:2024/06/16 09:11
定义:是用来描述字符序列的方法,是一种极其强大的计算工具
用途:用于检索和替换符合某个模式的文本,是一种极其强大的字符串操作 工具
方法:利用已经定义好的特定字符,以及这些特定字符的组合,来行成一个“规则字符串”,利用这个字符串表达对于文本信息的过滤逻辑。
正则表达式中对于元字符的记忆和使用极其关键
下面列举几种重要的元字符和记忆规则
1.”\b” 表示单词的开头或者结尾,如果渴望匹配单词的时候需要使用
2.”.” 表示匹配除了换行符以外的任意字符
3.”*” 表示它前面的字符可以重复使用任意次以使得整个表达式得到匹配
4.”\d” 用来匹配一个数字
5.”\s” 用于匹配任意空白字符,例如空格,制表符等
6.”\w” 用于匹配任意字母、数字、下划线、汉字
7.”+” 和*的作用比较类似,只是+需要匹配一次以上(ps:常常用于不包含)
8.”^” 匹配字符串的开始,单词和字符串的区别
9.”$” 匹配字符串的结束
10.{n,m} 匹配长度 ,重复次数大于n次,小于m次
11.”\” 用于转义,将一些特殊字符转义为正常的字符
12.”?” 和*类似,表示用于重复0或者1次
13.”[] ” 表示包含,将需要匹配的内容放到[]中去
14.””
15.”“
基本语法规则
“^([]{})([]{})([]{})$”
正则字符串 = “开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束”
分割语法
[a,b,c,d] //包含a或者b或者c或者d
PS:先学会用基础再去等价的进行替换
分支条件语法
使用”|” 来合并几种包含条件,只要满足其中一种就匹配,注意各种包含条件之间需要独立,否则有的条件可能会被屏蔽。
分组语法
利用“()”来表示不同的分组,利用不同的分组可以实现的功能也有所不同,由于正则表达式中并没有给定算术运算,因此可以通过分组来实现很多算术操作的功能
常见的分组语法如下:
1.捕获
1.(exp) 捕获exp的文本内容
2.(?<name>exp) 来为分组命名
3.(?:exp) 不捕获分组结果,也不为此分组进行命名
4.(?#comment) 不对分组产生任何的影响,只是用来进行注释的
2.零宽断言
1.(?=exp)匹配exp前面的位置,即exp之前的位置是我们想要的
2.(?’<’exp)匹配exp后面的位置,即exp之后的位置是我们想要的
3.负向零宽断言
这样做的目的还是没有太明白。
3.(?!exp)匹配后面跟的不是exp的位置,只要后面跟的不是exp都会被查找出来
4.(?
\k<word>
贪婪和懒惰
1.正常情况下,使用重复接受的限定符的时候,默认为贪婪匹配
2.如果在限定符后面加上?则修改为懒惰匹配,懒惰匹配为尽可能最少的使用重复接受限定符
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- block简单深究——
- 数据展现---Echarts
- struts2 国际化
- 运维题目
- 机器学习算法基础概念学习总结
- 正则表达式
- PHP:Linux/Ubuntu15.04搭建LAMP开发环境图解教程
- 【经典算法】:ASCII码打印的算法实现
- Android 自定义View 实现垂直滑动页
- Swift数组字典基本定义控制流基本应用
- 关于tomcat startup.bat启动后一闪而过的问题(转)
- (25)JAVA.IO--使用Java创建指定大小的空文件
- android studio中隐藏titlebar
- hihocoder 1233Boxes