正则表达式
来源:互联网 发布:格式化js代码 编辑:程序博客网 时间:2024/06/03 16:29
<?php
//$str="www.baidu.com";
//$preg="/(?<=www\.).*(?=\.com)/is";
//$str="php pyhon pear";
//$preg="/\bp(?!h)\w+\b/is";
//$str="@baidu.com@souhu@sougou$";
//$preg="/(?<=@).*?(?=[@#$])/is";
try {
if(preg_match_all($preg, $str,$arr)){
echo "<pre>";
var_dump($arr);
}else{
throw new Exception("匹配失败");
}
} catch (Exception $e) {
echo $e->getMessage();
}
/**
* 第十节课 正则表达式
* =====================================
* 模式修正符
* //s 将字符串视为单行,可以让.*匹配换行符
* //m 匹配多行
* //i 匹配不区分大小写
* //x 限定正则表达式里头的空格都是忽略的
* //U 匹配最近字符串的内容,禁止贪婪匹配
* //A 强制字符串开始计算
* //D 设置$符号仅匹配字符串的结尾 设置m模式修正符失效
* //e 将替换字符做表达式来使用
* ^ 必须以什么作为开始
* $ 必须以什么作为结束
* \d 匹配数字
* \w 匹配字母
* \s 匹配空格
* \b 在字符串后面添加表示后面部分要有边界比如空字符串
* \B 与\b相反
* \A 是固执的只匹配整段文本的开头,不受m模式的控制,不像^$
* \Z 与\A有些许相似 只匹配文本的结尾的,不受\n换行符的影响
* \z 是受\n换行符 的影响的
* + 匹配1个或多个
* * 匹配0个或多个
* ? 匹配0个或1个
* .* 不能匹配换行符
* {1} 此处限制1个
* {2,3} 限制2个到3个
* {5,}限定5个起
*
* 断言匹配
* 1.#$str="www.baidu.com";
$preg="/(?<=www\.).*(?=\.com)/is";
* ?<=....
* 2.a(?!p) 匹配a后面字母不为p的
* a(?=p) 匹配a后面的字母等于p的
* (?=[@#$]) 匹配后面包括@#$
*
$str="1111";
$pattern="/(\d)1{3}/i";
preg_match($pattern, $str,$all);
结果
array (size=2)
0 => string '1111' (length=4)
1 => string '1' (length=1)
特殊的说明
(?:pattam) 非捕获匹配
修改后
$str="1111";
$pattern="/(?:\d)1{3}/i";
preg_match($pattern, $str,$all);
结果
array (size=1)
0 => string '1111' (length=4)
(?!pattam) 表示所在位置右侧不能匹配
$str="1112";
$pattern="/(1){3}(?!2)/i";
preg_match($pattern, $str,$all);
结果
array (size=0)
empty
(?<!pattam) 表示位置左侧不能匹配
(?=pattam)
(?<=pattam) 所在位置左侧能够匹配
* preg_split 拆分成数组
*
* file_get_contents 获取到文件的内容
* file_put_contents 写入文件
*/
//137集
0 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- JAVA练级之路(一)--- JAVA环境配置
- 数据结构基础--线性表操作
- Android中的Loaders机制
- 周易六十四卦——屯卦
- mysql基础学习笔记-2
- 正则表达式
- 字符展开详解
- 9. Remove Nth Node From End of List
- iOS 更轻量级的控制器 数据请求和解析的封装
- 【第五章】Spring表达式语言 之 5.3 SpEL语法 ——跟我学spring3
- ExtJS远程数据-本地分页
- List的contains()方法(转)
- 仿百度图片浏览效果
- android AsyncTask介绍