正则表达式基础
来源:互联网 发布:苹果手机无法更新淘宝 编辑:程序博客网 时间:2024/05/07 14:23
正则表达式就是描述字符串排列模式的一种自定义语法规则
最擅长的就是处理字符串
如果可以使用字符串处理函数完成的任务,就不要使用正则表达式处理
有一些复杂的操作,只能使用正则表达式完成
正则表达式在很多语言中都有应用
正则表达式也叫做一种模式表达式
正则表达式就是通过构建具有特定规则的模式,与输入的字符信息比较,再进行分割匹配查找替换等工作
如果正则表达式不和函数一起使用,则表示为一个字符串
两个方面学习:
@· 正则表达式的模式如何编写
1 定界符 //正则表达式的开始和结束符号
除了数字字母 反斜线\ 以外的字符都可以为定界符
一般使用正斜线为定界符
/原子和元字符/模式修正符号/
2 原子
原子是正则表达式最基本的组成单位,而且必须至少包含一个原子
只要一个正则表达式可以单独使用的字符,就是原子
包含所有打印(能在屏幕上显示的字符)和非打印字符
*.<>如果所有有意义的字符,想作为原子使用,统统使用\转义字符
转义字符可以将有意义的字符转成没意义的字符
也可以将没意义的字符转成有意义的字符
在正则表达式中个可以直接使用一些代表范围的原子::
\d 表示任意一个十进制的数字
\D表示任意一个除了十进制的数字之外的字符
\s匹配任意一个空字符
\S表示任意一个非空白
\w表示任意一个字 a-z A-Z 0-9 _
\W表示任意一个非字,除了\w表示以外的字符
自己定义一个原子表[],可以匹配方括号中的任何一个原子
eg:
[a-z6-8]
[^a-z]表示取反,^ 必须在开头
3元字符
元字符是一种特殊的字符,是用来修饰原子用的,不可以单独使用
* \* *如果不见表示特殊意义,表示其前面的可以出现0次 1次或多次
+ \+ +表示其前面的原子可以出现1次或多次
? 表示其前面的原子可以出现0次或一次
. 默认情况下,表示除换行符外,任意一个字符
^ 直接在一个正则表达式的第一个字符出现,必须以其后面的原子开头
$ 必须要以前面的原子结束
{}用于自己定义前面原子出现的次数{m}m表示一个整数,表示前面的原子只能出现的次数
{m,n} m要小于n ,表示前面的原子出现的次数m到n次
{m,}表示前面的原子必须出现次数大于m次,最多可以无限次
| 表示或 优先级别是最低的,最后考虑它的功能
() 重点:
1.作用:是作为大原子使用
2.改变优先级别
3.作为子模式使用
\b 表示一个边界
\B 表示一个非边界
#作为子模式使用,正则表达式不先对一个字符串匹配一次,全部匹配作为一个大模式,放到数组的第一个元素中
,每个()是一个子模式按顺序放到数组的其他元素中去
#可以取消子模式,就将()作为大原子或盖面优先级使用,在括号中最前面使用?:就可以取消这个()表示的子模式
反向引用,可以在模式中直接将子模式取出来,再作为正则表达式模式的一部分,如果是在
正则表达式像替换函数 preg_replace函数中,可以将子模式取出,在被替换的字符串中使用
/1 取第一个子模式
/2取第二个子模式
等等(注意是单引号还是双引号引起来的正则)
”\\1“ '\1'
优先级别
\优先级别最高
()【】第二
*+?第三
^$
|最低
4 模式修正符号 i u
@·学习正则表达式的强大处理函数
//在定界符之外协商修正符
就是几个字母
可以一次使用一个,也可以连续使用多个,每个符号都有一定的作用
是对整个正则表达式调优或者是对正则表达式功能的扩展
eg: /abc/ 只能匹配小写的abc
"/abc/i" 匹配的字母不区分大小写
i:在和模式匹配时不区分大小写
m:默认情况将字符串视为一行
s:如果没有使用这个模式修正符号时,元字符的“。”默认不能代表换行符,将字符串视为单行
x:表示模式中的空白忽略不计
e:正则表达式必须使用preg_replace替换字符串的函数中时才可以使用。
A:必须以什么开头
Z:以什么结尾
U:正则表达式的特点就是比较“贪婪”,只要符合的东西全部都能匹配出来
解决贪婪模式的办法:
一种使用模式修正符U
另一种是使用?完成
0 0
- 正则表达式基础表达式
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式的基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式入门基础
- 正则表达式基础
- Javascript正则表达式基础
- 正则表达式基础
- 正则(正规)表达式基础
- 寄存器地址以及用软件通过寄存器控制硬件
- 常见Web技术之间的关系,你了解多少?
- python简单文件操作
- return C++构造函数的返回值
- Java Annotation 高级应用<3>
- 正则表达式基础
- ARCHIVELOG模式下用户管理恢复控制文件—使用二进制控制文件恢复
- Hduoj 1711【KMP】
- C#常用的正则表达式
- AndroidDataFramework(数据库开源框架使用)
- 稀疏编码及其改进(ScSPM,LLC,super-vector coding)
- U-boot-1.1.6第一阶段源码分析
- C语言优先级在嵌入式编程中的重要性
- C++实现链式栈,运用模板,界面友好,操作方便,运行流畅