正则表达式
发布时间:2020-12-13 22:50:52 所属栏目:百科 来源:网络整理
导读:感觉这几天学习一直不在状态,又重新把web开发的内容从基础开始学了一遍,可是学的时候并不是像我当初想的那样,像复习一样过一遍就行了,看来我错了,当初学习正则表达式的时候,认为把一些常用的元字符和修正符记住就行了,可是,现在把正则表达式学了一遍
感觉这几天学习一直不在状态,又重新把web开发的内容从基础开始学了一遍,可是学的时候并不是像我当初想的那样,像复习一样过一遍就行了,看来我错了,当初学习正则表达式的时候,认为把一些常用的元字符和修正符记住就行了,可是,现在把正则表达式学了一遍又一遍,每次学都有不同的理解,同时也谢谢我师父帮助学习正则表达式,,
1.正则表达式的语法
定界符号
除了字母、数字和正斜线以外的任何字符都可以都定界符号 / /
原子
原子是正则表达式最基本组成单位,而且必须至少要包含一个原子
在正则表达式中代表范围的原子
d : 表示任意一个十进制的数字
D : 表示任意一个除数字以外的字符
s : 表示任意一个空白字符、空格、nrtf
S : 表示任意一个非空白
w : 表示任意一个字 a-z A-Z 0-9_
W : 表示任意一个非字,除了a-zA-Z0-9_以外的任意一个字符
元字符
元字符是用来修饰原子用的,不可以单独使用
* : 表示其前原子可以出现0次、1次或多次
+ : 表示其前原子可以出现1次或多次
?: 表示其前的原子可以出现0次或1次
{}: 用于自己定义前面原子出现的次数
{m} 表示一个整数,表示其前原子只能出现m次
{m,n} m和n表示一个整数,m
于n
{m,} 表示前面的原子出现的次数大于等于m次
. :默认情况下,表示除换行符外的任意字符
^:直接在一个正则表达式的第一个字符出现,则必须以这个表达式开始
$:直接在正则表达式的最后一个字符出现,则必须以这个表达式结束
|: 表示或的关系,优先级是最低的,最后考虑它的功能
(): 1.作为大原子使用
2.改变优先级
3.作为子模式使用,正则表达式不光对一个字符串匹配一次,全部匹配作为一个
大模式,放到数组的第一个元素中,每个()是一个子模式按顺序放到数组的
其他元素中去
4.可以取消子模式,就将()作为大原子或改变优先级使用,在括号中最前面使
用?:就可以取消()子模式
5.反向引用,在模式中直接将子模式取出来
1 取第一个子模式 2取第二个子模式 主义单引号和双引号
"1" '1'
b: 表示一个边界
B: 表示一个非边界
模式修正符
1.模式修正符可以使用一个,每一个具有一定的意义。也可以连续使用多个
2.是对整个正则表达式调优使用,是对正则表达式功能的扩展
i: 和模式进行匹配不区分大小写
m:将字符串视为一行
s: . 默认情况下,不能换行,如果使用修正符s则表示换行
x:模式中的空白忽略不计
A:表示必须以什么开发
Z:表示必须以什么结尾
U:正则表达式的特点:就是比较贪婪,.*,.+所有字符符合这种要求
解决的方法:
使用模式修正符 U
另一种使用?完成 .*? .+?
如果两种情况同时出现,则又开启贪婪
/原子和元字符/模式修正符号 /为定界符
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- swift-商品加入购物车动画
- c# – 绑定DataGridComboBoxColumn SelectedIndex
- C#语法if(value = this || this || this)执行此操作
- c# – 如何使用从程序集动态加载的接口并调用其成员
- ruby – 加密空字符串
- swift – Alamofire,Objectmapper,Realm:嵌套对象
- postgresql – 在终端中放置`postgres -D /usr/local/var /
- Ajax学习笔记-Ajax数据格式
- 多级指针(二级指针),C语言多级指针的用法详解
- 如何在C#中执行System.Web.Script.Serialization?