2017-12-25   评论

正则表达式

 标签:

十一区在本篇文章对正则表达式做一个简介供大家参考。

1. 正则表达式简介

1.1 正则表达式的起源:

1956年,论文《神经网事件的表示法》首次提出“正则集的代数”表达式

英文名:regular expression

Ken Thompson将正则表达式引入到Unix,此后广泛应用到Unix或者类Unix工具中(好在他死的早,否则就去砍死他!)

主流作系统、主流开发语言都嵌入了正则表达式

1.2 正则表式的定义:

正则表达式,就是用某种模式去匹配字符串的一个公式

功能:主要用于字符串的查询替换操作

组成:由正规字符和一些特殊字符构成

2. 正则表达式语法规则

2.1 定界符

表示一个正则表达式的开始结束

/[0-9]/

$pattern = ‘ /[0-9]/ ’;

#[0-9]#

{ [0-9] }

2.2 原子

可见原子 - 不要假装看不见我

 -Unicode编码表中用键盘输出后肉眼可见的字符

有哪些?

- 标点;“‘ _ ? . 等等

- 英文字母数字  a-z,A-Z,0-9

- 汉字、日文、阿拉伯文等其他语言文字

- Σ θ ∈ ≌ 等数理化公式符号

- 其他可见字符

不可见原子 – 就算我不穿衣服你也看不见我

-Unicode编码表中用键盘输出后肉眼不可见的字符

有哪些?

- 换行符 \n

- 回车 \r

- 制表符 \t

- 空格

- 其他不可见符号

2.3 元字符

原子的筛选方式

- | 匹配两个或多个分支选择

- [ ] 匹配方括号中的任意一个原子

- [ ^ ] 匹配除了方括号中的原子之外的任意字符

将某一类原子进行归类,简化正则的书写---原子的集合

- . 匹配除换行符之外的任意字符

- \d 匹配任意一个十进制数字,即[0-9]

- \D 匹配任意一个非十进制数字,即[^ 0-9]

- \s 匹配一个不可见原子,即[ \n\t\r]

- \S 匹配一个可见原子,即[^ \n\t\r]

- \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}

边界控制 , 模式单元 和 模式选择符

-  ^ 匹配字符串开始的位置

-  $ 匹配字符串结尾的位置

-  ( ) 匹配其中的整体为一个原子

- ( | ) 匹配其中的两个或更多的选择之一.   分隔多选一模式

2.4 模式修正符

贪婪匹配   – 人家还想要嘛

- .* 匹配结果存在歧义时取其长(默认)

懒惰匹配  – 不要跟我比懒, 我懒得跟你比

- U 匹配结果存在歧义的取其短 .*?

忽略空白  – 我要实实在在的

-  x 匹配结果忽略空白

大小写匹配  – 大媳妇小媳妇,反正都是我媳妇

-  i 匹配结果不区分大小写


安卓app扫码下载

评论已关闭!