点我

正则表达式

正则表达式

正则表达式存在的意义:过滤和检索。

正则表达式,又称规则表达式(Regular Expression )常简写为regex,regexp,RE;

常用正则表达式函数

Preg\_match($pattern,$subject,$arr)
搜索subject在pattern给的正则表达式的匹配,返回匹配次数为0或1,存在arr数组中。

Preg\_match\_all($mattern,$str,$arr):进行全局正则表达式的匹配,可多次匹配,返回共计匹配的次数存到arr数组。

preg\_replace (正则表达式、替换成什么、匹配字符串)
返回替换后的结果

invalid image(图片无法加载)

作用

正则表达式通常被用来检索、替换符合规则的文本

特点

  • 灵活性、逻辑性和功能性强
  • 可以快速地用极简单的方式达到支付出的复杂控制

用途

  • 判断字符串是否符合某规则
  • 从一个字符串中找出符合规则的所以子字符串

常用字符

说明符号
数字\d
非字符\D
空白字符(空格、制表符、换页符等)\s
非空白字符\S
制表符\t
回车符\r
换行符\n
单词字符(26个英文字母+数字+下划线)\w
非单词字符\W

字符集合

字符集合:[ 单个字符或字符区间] ,用于匹配集合内字符

如:

  • [a-z] 表示a-z 26个小写字母
  • [ 0-9a-h] 表示0-9 10个数字和a-z 8个字母
  • [134a-h] 表示包含数字1,3,5和字母a-h 8个字母

注意:两个不同字符段间请勿使用逗号,隔开

反选字符

非集:[\^单个字符或区间],用于匹配非集合内字符]

  • 反选字符:^
  • [^] 注意:中括号内^ 才是反选
  • [^0-9] 表示匹配所有非数字字符
  • [^a-zA-Z] 表示匹配所有非字母字符

关键字

关键字描述
^匹配输入字符串的开始位置
$匹配输入字符串的结尾位置
()标记一个子表达式的开始和结束位置
*匹配前面的子表达式零次或多次
+匹配前面的子表达式一次或多次
.匹配除换行符\n之外的任意单个字符
[标记一个中括号表达式的开始
匹配前面的子表达式零次或一次
\将下一个字符标记为特殊字符原来的本意
{标记限定符表达式的开始
\ 指明两项之间的一项

限定符

字符描述
{n}n为非负数,匹配连续的字符n次
{n,}n为非负数,匹配连续的字符n次及以上
{n,m}n、m均为非负数,n \<\=m,匹配连续的字符 至少n次,至多m次

修饰符

修饰符描述
/i不区分大小写
/A匹配规则必须从头开始匹配
/s将匹配一切字符
/X正则表达式中的空白字符将会被忽略

注意:写在正则表达式的“外面“ /a/i

函数

PHP中使用正则表达式一定要加/ 正则表达式内容 /

  • preg\_match(正则表达式,匹配的字符串)
    匹配第一个匹配正则的子字符串,未找到返回0.找到返回1
  • preg\_grep()
    匹配第一个匹配正则的字符串数组,包含匹配的字符串和匹配的单元
  • preg\_match\_all(正则表达式,匹配的字符串,输出的二维数组)
    能匹配所有的子字符串,返回子字符串匹配的数量
  • pre\_replace(正则表达式,替换的字符串,匹配的字符串)
    将所有匹配正则表达式的字符串进行替换
分类: WEB安全

评论

-- 评论已关闭 --

目录