浅学正则表达式
来源:互联网 发布:相声知乎 编辑:程序博客网 时间:2024/06/05 20:48
最近在项目里要用到正则表达式来校验字符串,是否符合我们约定的规则,在网上找了几个表达式,发现看不懂,于是花了点的时间,简单得学习了一下正则,总结如下:
首先,给大家推荐一个学习正则表达式的网站:http://www.regexlab.com/zh/regref.htm
正文:
定义:一个字符串定义(描述)一个特征(规则),检验另一个字符串是否符合此特征(规则)。
一、基本语法
1.正则可以用来干什么?
1.验证字符串是否符合某特征
2.用来查找字符串
3.用来替换
2.转义字符
\r,\n 代表回车和换行符
\t 代表制表符
\\ 代表"\"本身
特殊字符前加 \ ,代表 \ 本身
\^ 匹配^符号本身
\$ 匹配$符号本身
\. 匹配小数点.本身
3.能够与'多种字符'匹配的表达式
\d 任意一个数字,0~9中的任意一个
\w 任意一个字母或数字或下划线,也就是A~Z,a~z,0~9,_中任意一个
\s 包括空格、制表符、换页符等空白字符的其中任意一个
. 小数点可以匹配除了换行符(\n)以外的任意一个字符
4.自定义能够匹配'多种字符'的表达式
使用[]包含一系列字符,能够匹配其中任意一个字符。例如:[abc]匹配'a'或'b'或'c'
使用[^]包含一系列字符,则能够匹配其中字符之外的任意一个字符。例如:[^a] 匹配a以外的任意一个字符
5.修饰匹配次数的特殊符号
'次数修饰'放在'被修饰的表达式'后边,比如"[abc][abc]" 可以写成 "[abc]{2}"
{n} 表达式重复n次
{m,n} 表达式至少重复m次,最多重复n次
{m,} 表达式至少重复m次
? 匹配表达式0次或者1次,相当于{0,1}
+ 表达式至少出现1次,相当于{1,}
* 表达式不出现或出现任意次,相当于{0,}
6.代表抽象意义的特殊符号
^ 与字符串开始的地方匹配,不匹配任何字符
$ 与字符串结束的地方匹配,不匹配任何字符
\b 匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符
特殊说明:\b 与 ^ 和 $ 类似,本身不匹配任何字符,但是它要求在匹配结果中所处位置的左右两边,其中一边是 \w 范围,另一边是非 \w 的范围。
| 左右两边表达式之间 "或" 关系,匹配左边或者右边
() 1.在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
2.取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
二、正则表达式中的一些高级规则
1.匹配次数中的贪婪与非贪婪
1.贪婪 在匹配的时候,总是尽可能多的匹配符合它规则的字符。
+ {m,n} *
2.非贪婪 在修饰匹配次数的特殊符号后再加上一个 ? ,则可以使匹配次数不定 的表达式尽可能少的匹配,使可匹配可不匹配的表达式,尽可能的"不匹配"。
2.反向引用 \1,\2
表达式后面的部分,可以使用前面"括号内的子匹配已经匹配到的字符串"。引用方法是"\"加上一个数字。"\1"引用第一对括号内匹配到的字符串,"\2"引用第二对括号内匹配到的字符串^以此类推,如果括号内包含另一对括号,则外层的括号先排序号,就是哪一对的左括号"("在前,那这一对就先排序号
3.预搜索
正向预搜索
(?=xxx) (?!xxx)
反向预搜索
(?<=xxx) (?<!xxx)
0 0
- 正则表达式 浅学
- 浅学正则表达式
- 正则浅学
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- OpenCV学习笔记(九) 重映射、仿射变换
- 在OS X 系统中快速调出Emoji表情的界面(特殊符号界面)
- Mac系统终端命令行不执行命令 总出现command not found解决方法
- Jtemplate解析Json小引
- 加载图标的使用
- 浅学正则表达式
- Leaks检查内存泄漏,内存清理、监控的Android开发工具
- CSS完美hack方案
- poj2965
- CSS 中 # 和 . 的区别
- OpenCV学习笔记(八) 边缘、线与圆的检测
- 仿微信公众号发送到桌面快捷方式
- 【宝宝总是饿1】C#如何与数据库相连?
- sql server2008 R2 各个版本的区别与选择