正则表达式php中的几点
来源:互联网 发布:正在准备设定windows 编辑:程序博客网 时间:2024/06/07 23:40
1、preg_match($pattern,$subject,[array & $matches]) 第三个参数可选,因为只匹配一次,返回值为 0或
者1,返回一维数组。
preg_match_all($pattern,$subjuct,array&$matches) 第三个参数必选,一般返回的是二维数组。
用于表单验证。
都会把匹配结果放到$matches 数组中,返回值为返回的个数。
也就是可以拿到返回的键值对的个数
pattern 正则表达式
subject 目标数据。
2、preg_replace($pattern,$replacement,$subject) // 用于非法词语过滤
preg_filter($pattern,$replacement,$subject)
支持数组,两者的区别是如果$subject是个数组,filter会保留发生了替换的字符串,repalce都会保留。
$pattern=array('/[0123]/','[456]'.'[789]');
$replacement=array('hello','fuck','world');
str_replace();
3、preg_grep($pattern,array$input);
$pattern='/[0-9]/';
$subject=array('ca','af34','dasfaf334asdf');
$arr=preg_grep($pattern,$subject);
preg_grep也会过滤的
4、exlode 和preg_split($pattern,$subject);
5、preg_quote($str) // 正则预算符转义,是正则的地方都会被转义
$str='afas{adfa}[asdfa12]';
$str=preg_quote($str);
===================================================================
正则表达式语法。
1、界定符号 开始和结束位置 '//' 本身就是个字符串,然后用//夹在中间。界定符不是正则表达式的一部
分。只是开始和结束位置。或者两个##和{}都可以。
2、正则表达式工具 :regexpal js和html编写的。
3、原子 unicode编码表
可见原子:unicode中编码表中用键盘输出后肉眼可见的字符。
;?‘
文字匹配建议转换为unicode,然后放入到$pattern 中。
如果匹配的是正则的运算符,需要用\转义。
如果是在目标字符串中匹配\,需要用\来转义\
不可见原子
空格
tab制表符号 \t
回车\r
回车 \n 【换行】
4、元字符
原子的筛选方式
|匹配两个或者多个分支选择 Duang|duang [Dd]uang
【】匹配方括号中的任意一个原子
[^]匹配除了方括号中的原子,^必须放在【】的首位,才算取反。如果放在其他的地方,就当字符的正
常匹配了。
. 匹配除了换行符之外的任意字符[^\n]
\d 任意十进制数字[0-9],
\D匹配非0-9任意数字[^0-9]
\s 匹配不可见原子[\f\v\t\r\n]
\S 匹配可见原子[^\f\v\t\r\n]
\w 匹配任意数字字母下划线 [0-9A-Za-z_]
\W 匹配非任意数字,字母下划线[^0-9a-zA-Z_]
5、量词
{n}表示前面的原子恰好出现n次 支持集合。比如[a-zA-Z]{2}匹配任意两个英文字母在一起的字符
{n,}表示前面的原子最少出现n次
{n,m}表示前面的
? 0次或者一次{0,1} _?i 不管有没有下划线,都会匹配到i 匹配到_i 和i
* 0次一次或者多次{0,}
+匹配一次或者多次之前的原子{1,}
6、 边界控制和模式单元
^字符串开始的位置
$字符串结束的位置
^Duang~$ 意思是必须完全匹配Duang~。前后有空格的话都不会匹配到。
匹配duang 和Duang的方法
duang|Duang
(dD)uang
(d|D)uang
7、修正模式 类似手机的情景模式
7.1贪婪匹配与懒惰匹配
贪婪匹配:匹配结果存在歧义时取其长
懒惰模式取其短
默认模式是贪婪模式,如果要改为非贪婪模式,只需要在后面加上U
7.2 i 忽略英文字母大小写
7.3 x 忽略空白,制表符,空格等,指的是忽略正则表达式中($pattern)中的空白等15:27 2015/4/22
7.4 s 让.匹配包括换行符在内的所有字符{默认点是匹配除了换行符之外的任意字符}
7.4eg
$pattern="/./s";
$subject='1234'."\n"."567";
preg_match_all($pattern, $subject,$match);
show ($match);
out=》Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] =>
[5] => 5
[6] => 6
[7] => 7
)
)
============================================================================================
实战应用
1、非空 原子出现1次或者多次
.+ 此匹配 会匹配到\t
[^.\s] 这个比较好
2、浮点两位小数
-?\d*\.\d{2}
3、手机号
^1[345678]{1}[0-9]{1}\d{9}$
4、email
^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
5、email
^(https?://)?(\w+\.)+[a-zA-Z]*$
=======================================================================
者1,返回一维数组。
preg_match_all($pattern,$subjuct,array&$matches) 第三个参数必选,一般返回的是二维数组。
用于表单验证。
都会把匹配结果放到$matches 数组中,返回值为返回的个数。
也就是可以拿到返回的键值对的个数
pattern 正则表达式
subject 目标数据。
2、preg_replace($pattern,$replacement,$subject) // 用于非法词语过滤
preg_filter($pattern,$replacement,$subject)
支持数组,两者的区别是如果$subject是个数组,filter会保留发生了替换的字符串,repalce都会保留。
$pattern=array('/[0123]/','[456]'.'[789]');
$replacement=array('hello','fuck','world');
str_replace();
3、preg_grep($pattern,array$input);
$pattern='/[0-9]/';
$subject=array('ca','af34','dasfaf334asdf');
$arr=preg_grep($pattern,$subject);
preg_grep也会过滤的
4、exlode 和preg_split($pattern,$subject);
5、preg_quote($str) // 正则预算符转义,是正则的地方都会被转义
$str='afas{adfa}[asdfa12]';
$str=preg_quote($str);
===================================================================
正则表达式语法。
1、界定符号 开始和结束位置 '//' 本身就是个字符串,然后用//夹在中间。界定符不是正则表达式的一部
分。只是开始和结束位置。或者两个##和{}都可以。
2、正则表达式工具 :regexpal js和html编写的。
3、原子 unicode编码表
可见原子:unicode中编码表中用键盘输出后肉眼可见的字符。
;?‘
文字匹配建议转换为unicode,然后放入到$pattern 中。
如果匹配的是正则的运算符,需要用\转义。
如果是在目标字符串中匹配\,需要用\来转义\
不可见原子
空格
tab制表符号 \t
回车\r
回车 \n 【换行】
4、元字符
原子的筛选方式
|匹配两个或者多个分支选择 Duang|duang [Dd]uang
【】匹配方括号中的任意一个原子
[^]匹配除了方括号中的原子,^必须放在【】的首位,才算取反。如果放在其他的地方,就当字符的正
常匹配了。
. 匹配除了换行符之外的任意字符[^\n]
\d 任意十进制数字[0-9],
\D匹配非0-9任意数字[^0-9]
\s 匹配不可见原子[\f\v\t\r\n]
\S 匹配可见原子[^\f\v\t\r\n]
\w 匹配任意数字字母下划线 [0-9A-Za-z_]
\W 匹配非任意数字,字母下划线[^0-9a-zA-Z_]
5、量词
{n}表示前面的原子恰好出现n次 支持集合。比如[a-zA-Z]{2}匹配任意两个英文字母在一起的字符
{n,}表示前面的原子最少出现n次
{n,m}表示前面的
? 0次或者一次{0,1} _?i 不管有没有下划线,都会匹配到i 匹配到_i 和i
* 0次一次或者多次{0,}
+匹配一次或者多次之前的原子{1,}
6、 边界控制和模式单元
^字符串开始的位置
$字符串结束的位置
^Duang~$ 意思是必须完全匹配Duang~。前后有空格的话都不会匹配到。
匹配duang 和Duang的方法
duang|Duang
(dD)uang
(d|D)uang
7、修正模式 类似手机的情景模式
7.1贪婪匹配与懒惰匹配
贪婪匹配:匹配结果存在歧义时取其长
懒惰模式取其短
默认模式是贪婪模式,如果要改为非贪婪模式,只需要在后面加上U
7.2 i 忽略英文字母大小写
7.3 x 忽略空白,制表符,空格等,指的是忽略正则表达式中($pattern)中的空白等15:27 2015/4/22
7.4 s 让.匹配包括换行符在内的所有字符{默认点是匹配除了换行符之外的任意字符}
7.4eg
$pattern="/./s";
$subject='1234'."\n"."567";
preg_match_all($pattern, $subject,$match);
show ($match);
out=》Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] =>
[5] => 5
[6] => 6
[7] => 7
)
)
============================================================================================
实战应用
1、非空 原子出现1次或者多次
.+ 此匹配 会匹配到\t
[^.\s] 这个比较好
2、浮点两位小数
-?\d*\.\d{2}
3、手机号
^1[345678]{1}[0-9]{1}\d{9}$
4、email
^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
5、email
^(https?://)?(\w+\.)+[a-zA-Z]*$
=======================================================================
0 0
- 正则表达式php中的几点
- PHP中的正则表达式
- PHP中的正则表达式
- PHP 中的正则表达式
- php中的正则表达式
- PHP中的正则表达式
- PHP 中的正则表达式
- php中的正则表达式
- php中的正则表达式
- PHP中的正则表达式
- PHP中的正则表达式
- php中的正则表达式
- PHP中的正则表达式
- PHP中的正则表达式函数
- 掌握 PHP 中的正则表达式
- PHP中的正则表达式函数
- php 正则表达式中的#号
- 掌握 PHP 中的正则表达式
- Java 内存主要划分
- 动态内存空间的开辟与释放
- #DayOne#,九九乘法表
- 各种排序算法总结
- Objective-C中取a-b之间的随机数方法
- 正则表达式php中的几点
- SecureCRT中文显示乱码
- Question2Answer mysql insert eventlog utf8_encode ( string $data )
- SQL 基础-->常用函数
- iOS企业账号的申请
- merge sorted array
- 第八周项目零(4):阅读程序:运算符重载
- 利用CombineFileInputFormat处理小文件
- winnet http上传实现