笔记 正则表达式RE -00 basic [need update]
来源:互联网 发布:androis中的js调试 编辑:程序博客网 时间:2024/05/17 09:43
regular expression: a pattern that strings can match
正则表达式就是匹配 目标字符串是一个subject,希望匹配的内容是一个pattern,利用正则,找出subject里匹配pattern的字符串
//eg: '*.txt' matches filename ending in '.txt'
//warning: notation is ugly
正则表达式基本语法:界定符,原子,量词,边界控制,模式单元
- 界定符:
表示一个RE的开始和结束/[0-9]/, 或者#[0-9]#, {[0-9]}(一般不用"{}"作为界定符)
regexpal 正则表达式实时调试工具
- 原子:
正则表达式中的最小匹配单位 【可以是Unicode编码表】分为可见原子和不可见原子
可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
包含标点,英文字母数字,汉子,日文,阿拉伯文等其他语言,数理化公式符号,其他可见字符等
不可见原子: Unicode编码表中用键盘输出后肉眼不可见的字符
如:\n, \r, \t, 空格 以及其他不可见符号
可以利用regexpal来匹配调试,在匹配前,为了避免由于编码格式不同可能产生的问题,我们先用Unicode转换工具将pattern先转为Unicode再进行匹配
如果遇到re运算符(如“$”), 就在字符前面加上"\"进行转义
元字符
- 原子的筛选方式:“|” 匹配两个或更多;“[]”匹配"[]"内任意一个原子;“[^]”匹配方括号内原子之外的任意字符
[0-9a-zA-Z] 即匹配0-9或a-z或A-Z中任意字符
[^asdfe] 匹配所有非asdfe的字符
[Aa]pple,匹配apple或Apple
- 原子的集合
“.”匹配除换行符之外的任意字符,即[^\n]
“\d”匹配任意一个十进制数字,即[0-9]
“\D”匹配任意一个非十进制数字,即[^0-9]
“\s”匹配一个不可见原子,即[\f\n\r\t\v]
“\S”匹配一个可见原子,即[^\f\n\r\t\v]
“\w”匹配一个数字,字母或下划线,即[ [0-9a-zA-Z_]
“\W”匹配一个非数字,字母或下划线,即[ ^0-9a-zA-Z_]
- 量词
[查找在目标字符串中某一个原子连续出现多少次]
{n} 恰好n次
{n,} >=n次
{n,m} n<=?<=m次
"*" 匹配0次,1次或者多次,即{0}
"+" 匹配1次或者多次,即{1}
"?" 匹配0次,或者1次,即{0,1}
- 边界控制与模式单元
^匹配字符串开始位置
$ 匹配字符串结尾位置
() 匹配其中对整体为一个原子
修正模式
- 贪婪匹配(匹配结果存在歧义时取其长,通常默认是贪婪匹配)与懒惰匹配 (匹配结果存在歧义时取其短,在pattern后面加一个大写U)
- i - 忽略英文字母大小写
- x 忽略空白
- s 让元字符"."匹配包括换行符在内所有字符
- e
补充举例
.+ 非空:可以利用这个来判断用户是否已经输入内容,如果没有,可以提示用户表单是必填内容,否则无法提交。
\d+\.\d{2}$ 匹配两位小数的数字
1(3|4|5|7|8)\d{9}$ 匹配手机号
^\w+(\.\w+)*@\w+(\.\w+)+$ e-mail 地址验证匹配
^(https?://)?(\w+\.)+[a-zA-Z]+$ 匹配顶级域名链接
Ref: http://www.imooc.com/learn/350
0 0
- 笔记 正则表达式RE -00 basic [need update]
- 正则表达式re笔记
- Python Re正则表达式笔记
- Python学习笔记--正则表达式,re模块
- 小白笔记0:re正则表达式
- 20161003 Python笔记之正则表达式 re
- python学习笔记正则表达式re模块
- Python 正则表达式 re 模块简明笔记
- Python 正则表达式 re 模块简明笔记
- Python正则表达式re模块简明笔记
- [笔记]python爬虫:正则表达式库re
- 【学习笔记】Python中的正则表达式re
- Python 正则表达式 re
- python-re【正则表达式】
- re正则表达式
- 正则表达式re模块
- python re 正则表达式
- Python re正则表达式
- 面试题之用两个栈实现一个队列
- yahoo 财经接口中历史数据调用中碰到的一些问题
- [1]-计算机网络
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- QSplitter在QTabWidget中使用
- 笔记 正则表达式RE -00 basic [need update]
- 地图坐标服务
- 5.2.4 邻接多重表
- Mac上配置Android开发环境
- 周报2016.09.05-2016.09.11(分页查询并放入非datagrid列表)
- cocos2d - JS 逐帧动画 (Animation Layer)
- Linux Shell系列教程之(十)Shell for循环
- Moncler Jacka again and again
- Qt学习——停靠窗体QDockWidget类