正则表达式随笔
来源:互联网 发布:苹果实用软件推荐 编辑:程序博客网 时间:2024/06/06 08:42
每次都是想到需要正则的时候就百度下就好了,每次都这样,没有系统的归纳,一看就是好久,于是今天打算随便整理整理。正则是干嘛的,基本上不用多说了,校验格式的。1、 / 是定界符,一般起和终止都是/ 2、+ 规定是它前面的字符必须连续存在一次或多次:[1,~]3、* [0,~]4、? [0,1]其他的有\s :用来匹配空格和换行符还有tab键\S :用来匹配除了空格之外的所有字符\d :0-9的数字\D [^0-9]表示非字符字符\w 匹配字母下划线数字\W 匹配非字符下划线数字. 点匹配除了回车和换行以外的所有字符,可以说很强大的
总结:小写和大小的是相反的。正则表达式可以:/内容/ 也可以^内容$
2、还有不少1、[a-z] 表示和a-z内的任何一个小写字母匹配2、[a|z]^ 开始
() 域段
[] 包含,默认是一个字符长度
[^] 不包含,默认是一个字符长度
{n,m} 匹配长度
. 任何单个字符(. 字符点)
| 或
\ 转义
$ 结尾
[A-Z] 26个大写字母
[a-z] 26个小写字母
[0-9] 0至9数字
[A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
, 分割
以上就是些概念了,主要说说惰性匹配和贪婪匹配
<?php$str = 'abcdefght43534a534t';$preg = '/a.*?t/';$preg1 = '/a.*t/';$result = preg_match_all($preg,$str,$match);$result1 = preg_match_all($preg1,$str,$match1);var_dump($match);var_dump($match1);
.*? 是惰性匹配,匹配到满足条件的abcdefght就停止了此次匹配,不会干扰后面的继续匹配所以第一个输出结果是
array(1) { [0]=> array(2) { [0]=> string(9) "abcdefght" [1]=> string(5) "a534t" }}
.* 是贪婪匹配,他会尽可能多的占用字符串,所以结果是
array(1) { [0]=> array(1) { [0]=> string(19) "abcdefght43534a534t" }}
4、非获取匹配
(?:pattern)
非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。
(?=pattern)
非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)
非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
5、在匹配结束以后会带参数如:gimsex,各自的含义是:
1、/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个
2、/i 表示匹配的时候不区分大小写,这个跟其它语言的正则用法相同
3、/m 表示多行匹配。什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号
4、/s 与/m相对,单行模式匹配。
5、/e 可执行模式,此为PHP专有参数,例如preg_replace函数。
6、/x 忽略空白模式。
- zz 正则表达式随笔
- 正则表达式随笔
- 正则表达式随笔
- 正则表达式随笔
- 正则表达式随笔
- PHP-正则表达式随笔
- 正则表达式随笔
- php正则表达式随笔
- Java正则表达式 随笔
- 转载一篇 正则表达式随笔(高级讲解
- 正则表达式随笔小记(一)
- 正则表达式随笔小记(二)
- 利用正则表达式获取博客园随笔(一)
- 利用正则表达式获取博客园随笔(三)
- 利用正则表达式获取博客园随笔(四)
- web.js.字符串操作与正则表达式.随笔
- 随笔:linux正则表达式.*查找任意位置的两内容
- 学习随笔(2)正则表达式的讨论
- 各种进制转换
- Nodejs+Express创建HTTPS服务器
- WAPI安全协议检测系统V3解析:自动化、高效率、低成本
- SpringMvc教程(一)--SpringMvc的概述
- 安卓学习-活动(Activity)
- 正则表达式随笔
- 腾讯IM即时通讯(2.4.1)
- php读取目录文件函数is_dir(),opendir(),readdir(),closedir()
- 关于iOS10需要支持https才能通关苹果App Store审核问题
- C算法实现:将字符串中的数字返回为整型数
- Android 实现自定义时间间隔,文字颜色的TimePicker
- 使用Java原生代理实现AOP
- 线程
- angular学习(六)—— 依赖注入