马冲的博客

导航

正则表达式

正则表达式

什么是正则表达式:

能够表示一定规则的字符串就是正则表达式.

正则表达式的作用:

主要用于判断字符是否符合规范,或者替换字符使用

网页小偷,采集器....

正则表达式的学习流程:

正则语法的学习

正则函数的学习

没有正则函数的正则表达式就是一个字符串!

 

正则的组成部分:

1.正则定界符

2.原子

3.元字符

4.模式修正符

 

正则表达式的定界符:

习惯上定界符用 /

除了数字,字母,空格反斜线等字符之外的特殊字符都可以作为定界符,推荐使用 /(因为其他语言都用这个符号)

正则表达式的定界符有2套:

最外层是字符串边界符

内层还有一个正则定界符

 

正则的原子:

组成正则表达式的最小单位就是原子!

1.,所有的可见字符都是原子  A/0/&/你/妹...

2.所有不可见字符也都是原子, 空格 \n  \r  \t ..

3.正则转移字符原子

\d   0-9

\D 除了0-9

\s  空白字符

\S  可见字符

\w  0-9a-zA-Z_

\W 除了0-9a-zA-Z_

 

正则的元字符:(原子修饰符)

[] 原子列表

在[]中填写所有可以使用的原子,表示[]中的任意一个原子都可以,如果是连续的ASCII字符 可以使用-连接开始和结束字符

[^原子] 表示除了原子列表中的任意原子都可以

 

+  1个以上的原子

*  0个以上的原子

? 0个或1个

 

{m,n}  m-n个原子

{m,}   表m个以上的原子

{m}   必须是m个原子

 

^  必须以指定的字符开头

$  必须以指定的字符结尾

^原子$  精确匹配某个字符

 

|  表示或关系的原子取舍(注意运算优先级)

\b 表示词边界

\B 表示非词边界

() 括号元字符

1.视为一个原子

2.改变优先级

3.作为模式单元使用,方便反向引用

 

|  表示或关系的原子取舍(注意运算优先级)

注意:该元字符的运算优先级没有字符串之间的关联优先级高,所以如果想在2个原子之间进行选择,需要使用()改变优先级.

|元字符配合 开始和结束符号,效果不再是精确匹配

\b 表示词边界

表示词边界的字符:

空格、字符串的开始和结束或者特殊字符.

\B 表示非词边界

表示除了此边界之外的字符.一般只英文字母和数字

() 括号元字符

1.视为一个原子,将多个原子放在一起视为一个原子使用,方便使用其他元字符

2.改变优先级,在进行|运算时 经常使用

3.将括号中匹配的内容暂存于内存,方便后期使用

4.作为模式单元使用,方便反向引用,需要配合函数

5.注意:如果只想使用运算优先级或者视为一个原子的功能,可以再()内部最前面使用?:的格式 取消存于内存的功能

 

.  表示任意字符的元字符,除了\n  在s修正符之下可以匹配

 

模式修正符:

i  大小设置 忽略大小写

x  忽略正则表达式中的空白

s 使得.能够匹配\n

m  视为多行处理模式,配合^和$使用 ^可以匹配每个行的开头,$可以匹配每个行的结束.

e  逆向引用模式

S  加速匹配模式  看看就行

U  改变贪婪模式

 

正则的函数:

 

posted on 2018-11-06 23:21  马冲的博客  阅读(164)  评论(0编辑  收藏  举报