博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式规则
阅读量:6243 次
发布时间:2019-06-22

本文共 1160 字,大约阅读时间需要 3 分钟。

^是界定符,表示匹配字符串的开始; [+-],中括号表示其内的内容都是符合要求的匹配,所以这个表示“+”或者"-"; \d,[0-9]的简写形式,也就是匹配数字; $也是界定符,表示匹配字符串的结束; 了解以上之后再来看问号(?)和星号(*):跟在一个模式内容后面的是量词,用来限定模式内容匹配的次数,例如我想要匹配最少1个、最多3个数字,例如4、20、123、226这样的,先前已经解释过单个数字可以用[0-9]或者\d表示,那么怎么表示最少匹配1次、最多3次呢?很简单,就在模式后面加上大括号配合次数表示量词,形式为{下限,上限},就是这样[0-9]{1,3}或者\d{1,3}。类似的,[0-9]{2}就表示只能匹配2个数字(多一个少一个都不行),[0-9]{2,}表示至少要有2个数字最多不限(注意大括号内的逗号),[0-9]{,2}表示最多有2个数字(注意大括号的逗号)。 针对经常用的量词 正则中也有简写,{0,1}简写就是问号(要么没有要么只有一次) {0,}简写就是星号(随便有没有也不限次数) {1,}简写就是加号(至少有一次) .*表示任意多个任意字符   例如:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配 有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复 a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符) *、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。 ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合 () 标记一个子表达式的开始和结束位置 \cx  匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 \f   匹配一个换页符。等价于 \x0c 和 \cL。 \n  匹配一个换行符。等价于 \x0a 和 \cJ。 \r  匹配一个回车符。等价于 \x0d 和 \cM。 \s  匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 \S  匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t  匹配一个制表符。等价于 \x09 和 \cI。 \v  匹配一个垂直制表符。等价于 \x0b 和 \cK。

转载地址:http://okpia.baihongyu.com/

你可能感兴趣的文章
【转】 编写C#调用的C++DLL
查看>>
Programming Concepts
查看>>
【Linux】用grep在文档中查找内容
查看>>
音视频编码格式和封装格式的关系和区别是什么?
查看>>
ORACLE 表空间使用率查询
查看>>
cadence制作封装要素
查看>>
Web实时通信
查看>>
dump java
查看>>
VTK中获取STL模型点的坐标以及对其进行变换
查看>>
Sql Server内置函数实现MD5加密
查看>>
2017-2018-1 期中教学检查教师自查表
查看>>
Attention[Content]
查看>>
docker下部署spring boot
查看>>
【Android Studio安装部署系列】十九、Android studio使用SVN
查看>>
java 按概率产生
查看>>
设计模式(26)-----创建型模式-----建造者模式
查看>>
excel读写技术-:ADO.NET 如何读取 Excel
查看>>
纯前端表格控件SpreadJS与Java结合,实现模板上传和下载等功能
查看>>
推荐 5 款超好用的 Chrome 浏览器插件,文末有从别人的电脑移植插件的方法
查看>>
几种实现延时任务的方式(二)
查看>>