正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

正则表达式

一、 什么是正则表达式

/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

这就是正则表达式?  看不懂

二、 和正则表达式相似的事物

   /看不懂/神秘

   女人的心

       道士的符

       医生的处方

       正则表达式

三、 什么时候用正则表达式

  当字符串函数已经不能胜任某个功能的时候 用正则表达式来搞定,

其作用就是用来对字符串进行匹配查找,替换以及分割等操作

四、 学习正则表达式可以做什么

1. 操作字符串是正则的唯一作用

2. 验证用户名  密码  是否符合规范

3. 验证电话号

4. qq聊天表情

5. 新闻采集器/小偷程序

五、 正则表达式的几个特点

正则表达式也是一个字符串

由于是有特殊的意义的字符串组成,具有一定编写规则,也是一种模式所以我们可以看成为一种语言

注意: 如果正则表达式不和函数一起使用则他就是普通字符串 如果将正则表达式放入函数中使用 才能发挥出表达式的作用

 

 preg_match() 进行一次正则表达式匹配(重点重点重点)

 参数:

第一个参数: 正则表达式

第二个参数:  要匹配的变量

第三个参数:  匹配出来的数组

 

返回值:

返回匹配的个数

 

 

六、 学习流程

1. 语法学习

 就是一个字符串

2. 函数学习

查找替换匹配等

以上学习内容缺一不可

七、 正则表达式的语法

i. 正则定界符

ii. 正则表达式中的原子

iii. 正则表达式的元字符(原子修饰符)

iv. 正则表达式模式修饰符

 

八、  定界符(重点重点)

是用来声明正则表达式的边界符号

实际上 数字 字母 \ 之外的都可以

如果你要将$作为定界符的情况下 外面必须使用单引号作为字符串的定界符 不能是双引号  因为双引号解析变量

通常用 / 作为定界符   推荐使用!

注意:

正则表达式有两个定界符

一个是字符串的引号的边界符

一个是正则表达式的定界符

 

 

九、 原子符(重点重点重点重点重点)

i. 与化学里面的一样   最小单位原子

正则表达式中也是也一样  原子是组成正则表达式的最小单位

原子到底有哪些

所有的可见字符都是原子

大部分的不可见字符串也是原子  比如 空格  转义字符

1. 普通字符

 字母  数字 下划线

2.  特殊字符

 [email protected]#$%^&*(){}|:<>?

3. 非打印字符

\f --- 分页符

\n --- 换行符

\r --- 回车符

\t -- 制表符

\v -- 垂直制表符

\d  匹配所有数字

\D匹配非数字

\s 匹配所有空白字符  包括 \r \n \t \v

\S匹配非空白字符

\w 匹配字母数字下划线

\W匹配非字母数字下划线

.匹配所有内容 但是除了\n以外

\V 匹配转义字符 (\V是用来匹配转义字符 但是他不只是只能匹配到\)

 

 

十、 正则表达式的元字符(原子修饰符)

a) 原子列表(重点重点)

[abc]   可选列表   只能是原子列表中的一个字符

[4-6]   连续的列表   456 可以匹配

[^abc]  排除列表      除了 a,b,c 都可以

b) 原子修饰符(重点重点重点重点)

   +  表示一个或者多个

?表示零个或者一个

*表示零个到N

{}

{m,n}

 表示 mn

{m,}

表示m个以上

{m}

表示m

 

十一、 词边界修饰符(掌握)

什么是词边界

可以分割单词的都是   非字母数字下划线

\b 词边界

\B 非词边界

注意: 词边界只对英文有效

十二、 字符串边界(重点)

1. ^  以指定字符开头的

2. $  以指定字符结尾的

3. ^ 字符串$   精确匹配字符串

十三、 选择修饰符(掌握)

    |  逻辑或

a|b     匹配a或者匹配b

abc|def  匹配 abc或者 def   字符串的结合优先级高于选择

ab(c|d)ef  匹配 abcef 或者 abdef

十四、 模式单元

()

改变优先级

将多个原子视为一个原子

可以将括号里面的内容在函数的辅助下反向引用

 反向引用是目标字符串中有重复内容的时候可以这样使用 但是如果只是模式一样 那样不行   

反向引用 必须是值相同 模式也一样

第几个括号 后面就用\几来替代

十五、 模式修正符(重点)

所有的模式修正符 都写在结束定界符外面

1. i    忽略大小写

2. x   忽略正则表达式空白

3. s   视为一行    .可以匹配\n

4. m   视为多行   .不可以匹配\n

5. U   改变贪婪模式  

 .* 默认贪婪模式 匹配最长的内容

 .*?默认非贪婪模式  匹配最短的内容

贪婪变为不贪婪 不贪婪 变为贪婪


以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

JS正则表达式详解