php preg正则表达式的组成部分

定界符号
多种都可以,常用为//

原子
最小的一个匹配单位 (放在定界符中),在一个正则表达式中,至少要有一个原子
1,打印字符(a-z A-Z 0-9 [email protected]#$%^&*()_+...)和非打印字符
2, 代表一类字符
\d :任意一个数字 [0-9]
\D :任意一个非数字 [^0-9]
\w :任意一个字 a-z A-Z 0-9 _ [a-zA-Z0-9_]
\W :任意一个非字 [^a-zA-Z0-9_]
\s :代表任意一个空白 [\t\n\f\v]
\S :代表任意一个非空白 [^\t\n\f\v]
3,自定义原子表
[fws3] :fws3任意一个字符
[^1-9a-z] :非1-9 a-z的任意一个字符
[2-9x] :2-9或者x的任意一个字符
4,点(.) 能代表所有任意一个字符

元字符
不是单独使用的,是用来扩展和限定原子的 (写在定界符号中)
* 用来修饰其前面的原子可以出现0个或多个(任意次) {0,}
+ 用来修饰其前面的原子出现1次或多次 {1,}
? 用来修饰前面的原子出现0次或1次 {0,1}
{n} 用来修饰其前面的原子出现n次
{n,m} 用来修饰其前面的原子出现n到m次,包括n和m
{n,} 用来修饰其前面的原子至少出现n次,包括n
| 是或的关系 ,表示它两边的原子,只要一个出现就可以了,但是 | 优先级是最低的
^ 或 \A 表示必须以什么开始,这个必须写在正则表达式的最前面
$ 或 \Z 表示必须以什么结束,这个必须写在正则表达式的最后面
\b 单词边界
\B 不是单词边界的部分

模式修正符 (单个字符)
1,模式修正符写在定界符号 ,放在右边 "/go*gle/i"
2,模式修正符号,一个字符就是一个功能,可以组合使用
作用:
修正正则表达式的解释,或扩充正则表达式的功能
i : 不区分大小写
s : 原子. 可以匹配换行符(\r)
x : 去除正则表达式里的空白
U :让 原子. 变得不贪婪 (在. 后面加? 也可以取消贪婪模式,即.*? 或.+?)

其他符号

() (括号)
1,改变优先级
2, 将小原子变成大原子
3,子模式,整个表达式是一个大的模式,小括号中是每个独立的子模式
4,反向引用
$text = "2014-03-22";
$reg = ‘/\d{4}(-|\/)\d{2}\1\d{2}/‘;
\1引用前面括号里的模式,即第一个模式 (?:xxx)使括号失去3,4功能

\ (转义字符)
1,可以将有意义的字符转成没有意义的原子字符 \^ \. \+ \‘ \" \?
2, 可以将没有意义的字符转成有意义的原子 \t \cx \f \n \r \v
3, 加上 \也没意义的字符,加不加\都没区别 \_ \q

实例
匹配网址
$reg = "/(https?|ftps?)\:\/\/(www|mail|bbs)\.(.+?)\.(com|cn|net)([\w\-\/\.\=\?\&\%]*)?/i";

匹配邮箱
$reg = "/\w+([+-.]\w+)*@\w+([-.]\w+)*/";

原文地址:https://www.cnblogs.com/cl94/p/9379027.html

时间: 2024-10-18 00:40:05

php preg正则表达式的组成部分的相关文章

php preg正则表达式

Note: 反斜线在单引号字符串和双引号字符串 中都有特殊含义,因此要匹配一个反斜线, 模式中必须写为 ”\\\\”. 译注: “/\\/”, 首先它作为字符串,反斜线会进行转义, 那么转义后的结果是/\/,这个才是正则表达式引擎拿到的模式, 而正则表达式引擎也认为 \ 是转义标记,它会将分隔符 / 进行转义, 从而得到的是一个错误,因此,需要 4 个反斜线才可以匹配一个反斜线. 事实上 $attribute = "sdfsdf.555"; preg_match('/([\w]+)(\

正则表达式学习笔记

/*新手的个人见解,勿以标准作量*/ ...待更新 米哥跟我说:"正则表达式说白了就是字符匹配." 以下是我学习当中的笔记. 正则表达式(Regular Expression)是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式. 在搜索文本时要匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.这就是正则的功能! 正则表达式由:定界符.原子.元字符.模式修改符组成. 定界符:一般用"//&q

Regular Expression(正则表达式)之邮箱验证

正则表达式(regular expression, 常常缩写为RegExp) 是一种用特殊符号编写的模式,描述一个或多个文本字符串.使用正则表达式匹配文本的模式,这样脚本就可以轻松的识别和操作文本.其实,正则表达式是值得大家花时间学习的.正则表达式不仅在javaScript 中有用,在其他许多地方也可以使用正则表达式,例如其他编程语言(比如Perl,Java,C#,Python 和PHP ),Apache 配置文件以及BBEdit 和TextMate 等文本编辑器.甚至Adobe Dreamwe

正则表达式的应用

正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的. 构造正则表达式的方法和创建数学表达式的方法一样.也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式.正则表达式的组件可以是单个的字符.字符集合.字符范围.字符间

正则表达式二

正则表达式 - 语法 http://www.runoob.com/regexp/regexp-syntax.html 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 列出目录时,dir *.txt 或 ls *.txt 中的 *.txt 就不是一个正则表达式,因为这里 * 与正则式的 * 的含义是不同的. 构造正则表达式的方法和创建数学表达式的方法一样.也就是用多种元字符

grep egrep及相关的正则表达式用法

一.什么是正则表达式 在编写处理字符串的时候,经常需要查询某些符合复杂规则的字符串,正则表达式就是描述这些规则的工具. 正则表达式有基本表达式和扩展正则表达式.扩展正则表达式,是基本正则表达式的补充.有些元字符,稍有不同. 二.正则表达式的组成部分: 由元字符及正常字符所书写,元字符不表达字符本意,而表达控制或通配的功能: 2.1基本正则表达式/扩展正则表达式元字符 字符匹配:[基本/扩展正则表达式元字符相同] 基本/元字符: 扩展/元字符: 说明: . . 匹配任意单个字符 [] [] 匹配指

正则表达式 - 语法

正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的. 构造正则表达式的方法和创建数学表达式的方法一样.也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式.正则表达式的组件可以是单个的字符.字符集合.字符范围.字符间

【转载】正则表达式

[转载]http://www.runoob.com/regexp/regexp-syntax.html 正则表达式 - 语法 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: runoo+b,可以匹配 runoob.runooob.runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次). runoo*b,可以匹配 runob.r

js-进阶 正则表达式

正则表达式 1.为什么需要正则表达式 因为我们常常要对用户输入的字符串进行匹配,看用户输入是否符合我们的要求 2.什么是正则表达式 所谓正则表达式,就是用于字符串中的 信息进行查找,替换和提取等操作. 创建正则表达式的方式,有两种,字面量,对象创建 字面量创建: 语法:let parttern=/正则规则/模式修正符 reg.test() 对象创建: 语法:let = new RegExp("正则规则","模式修饰符"): 3.正则表达式的组成部分 如果是字面量创建