PHP中常用的正则表达式由哪些元素构成?
在程序开发中,我们常常要用到正则表达式,对于新手来说,很多时候知道正则表达式是怎么回事,但当真正需要使用的时候,却不知该用什么函数,具体的修饰符也比较混乱。下面小编就为大家整理了一些php正则表达式中常用的函数及相关元素。

1.PHP中的正则函数
在php编程中,常用的正则函数主要有a.preg_match和b.ereg 正则函数两个,其中:
a.preg_match以perl语言
语法:preg_match( mode,string subject,array matches)
说明:mode参数---- 正则的模块,也就是正则表达式(语法)
subject参数---- 正则的内容
matches参数---- 正则的结果(获得一个数组的形式)
b.ereg 正则函数,以POSIX基础(Unix、Script)
语法:ereg(mode ,string subject, array regs)
2. 正则表达式 中的元素
a.原子(普通字符:a-z A-Z 0-9 、原子表、转义字符)
b.元字符(有特殊功能的字符,如:# 、*)
c.模式修正符(系统内置部分字符 i、m、S、U ...)
3.正则表达式中的“原子”
a.a-z A-Z _ 0-9 //最常见的字符
b.(abc)(skd) //用圆括号包含起来的单元符号(一个整体)
c.[abcs][^abd] //用方括号包含的原子表,原子表中的^代表排除或相反的内容
d.转义字符
\d 包含所有的数字[0-9]
\D 除所有数字外[^0-9]
\w 包含所有英文字符[a-z A-Z 0-9]
\W 除所有英文字符外[^a-z A-Z 0-9]
\s 回车,换行等
......
注明: 圆括号 必须是整体才能匹配; 方括号 只要是其子集,都可以匹配(内容存在)
4.正则表达式元字符
* 匹配前一个内容的0次1次或多次
. 匹配内容的0次1次或多次,但不包含回车换行(代指自己,任何内容)
+ 匹配前一个内容的1次或多次
? 匹配前一个内容的0次或1次
| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配,类似一个单词匹配)
^ 匹配字符串首部内容
$ 匹配字符串尾部内容
\b 匹配单词边界,边界可以是空格或者特殊符合(有单词分界符,类似空格)
\B 匹配除带单词边界意外内容(无单词分界符)
{m} 匹配前一个内容的重复次数为M次
{m,} 匹配前一个内容的重复次数大于等于M次
{m,n} 匹配前一个内容的重复次数M次到N次
( ) 合并整体匹配,并放入内存,可使用\\1 \\2…依次获取 (调用放入内存中的内容)
5.运算顺序
依然遵循从左到→右的运算规则
优先级:
( ) 圆括号因为是内存处理所以最高
* ? + { } 重复匹配内容其次
^ $ \b 边界处理第三
| 条件处理第四
最后按照运算顺序计算匹配
6.模式修正符
模式修正符是为php正则表达式增强和补充的一个功能,使用在正则之外,例如:/ 正则 / U
常用修正符:
i 正则内容在匹配时候不区分大小写(默认是区分的)
m 在匹配首内容或者尾内容时候采用多行识别匹配
s 将转义回车取消是为单行匹配如. 匹配的时候
x 忽略正则中的空白
A 强制从头开始匹配
D 强制$匹配尾部无任何内容 \n
U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束, 常用在采集程序上的正则表达式
7.匹配功能
preg_match_all 全部匹配函数
语法:preg_match_all ( string pattern, string subject, array matches [, int flags] )
说明:对结果排序使 $matches[0] 为全部模式匹配的数
用途:截取比较详细的内容,采集网页,分析文本
8.替换功能
preg_replace 正则替换函数
语法:preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
说明:通过正则表达式来替换相关内容,类似之前学过的str_replace字符串替换,但 功能要强于它
提示:1、替换内容可以是一个正则也可以是数组正则
2、替换内容可以通过修正符e来解决替换执行内容
用途:替换一些比较复杂的内容上,也可以用于内容的转换上
9.分割功能
preg_split 正则切割
语法:preg_split ( string pattern, string subject [, int limit [, int flags]] )
说明:通过正则表达式来切割相关内容,类似之前学过的explode切割函数,但explode 只能按照一种方式切割有局限性。
以上就是PHP开发正则表达式的常用函数、元素及相关使用方法,希望对大家在编写正则表达式的时候有所帮助,还不是很清楚的亲,可以运用上面介绍的这些东西尝试着写一两条正则表达式跑一下。
PHP中常用的正则表达式由哪些元素构成?的更多相关文章
- php中常用的正则表达式函数
php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...
- JavaScript 中常用的 正则表达式
这编文章我来整理了一些在 javascript 中常用的正则式希望能给大家带来一些开发的灵感 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{ ...
- js中常用的正则表达式
我一般对正则的使用方式如下,该方法会返回一个boolean值,然后对这个返回值来进行判断 // 判断是否是整数 function isInt(num) { var reg = new RegExp(& ...
- Java中常用的正则表达式
常用的正则表达式 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的 ...
- input pattern中常用的正则表达式
常用的正则表达式 pattern的用法,只是列出来一些常用的正则: 信用卡 [0-9]{13,16} 银联卡 ^62[0-5]\d{13,16}$ Visa: ^4[0-9]{12}(?:[0-9]{ ...
- WEB开发中常用的正则表达式
在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...
- WEB开发中常用的正则表达式集合
在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...
- .net 中常用的正则表达式整理
相信很多伙伴都跟我一样有关于正则表达式的爱和恨,怎么说呢? 因为正则表达式规则繁多且复杂,想一个一个学 全部精通,需要耗费很长时间和精力, 但是我们用的地方并不是很多,所以我觉得这类东西需要做成类似工 ...
- Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等
java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是符合,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,因为本人对正则表达式没有太深的研究,所有感兴趣的朋友可以自行百度.我这就给基本 ...
随机推荐
- UVA315 (无向图求割点)
题目大意:给定一个无向图,问共存在多少个割点.(割点:去掉此点后此图会断开连接)割点有两种存在:一种是第一次搜索的根节点,若其子节点数超过两个,则此点去掉后图会 断开连接,因此此点为割点:或者此点为搜 ...
- (转)ajax.dll,ajaxpro.dll的区别和用法
ASP.NET AjaxPro的应用 1.首先下载AjaxPro组件.并将AjaxPro.dll引用到网站(或项目). 2.修改Web.config.在 <system.web> 元素中添 ...
- [Notes] Reading Notes on [Adaptive Robot Control – mxautomation J. Braumann 2015]
Reading sources: 1.Johannes Braumann, Sigrid Brell-Cokcan, Adaptive Robot Control (ARC ) Note: buil ...
- SpringMVC+MyBatis项目分析与开发实例
一.用到的Jar包 <!-- ************ Spring测试包 ************* --><artifactId>spring-test</artif ...
- 浏览器js console对象
js中调用console写日志 console.log("some log"); console.warn("some warning"); console.e ...
- (2015秋) 作业6:(电梯系统之结对编程 I 总分=2*50 分)
电梯系统 0. 背景 南通大学钟秀校区“主教学楼” 用 2 部电梯(连地下室共9层):每到下课.上课前都特别拥挤,大家希望改进已有的电梯调度算法,满足学生和老师快速乘坐电梯的需要.因此,需要重新设计一 ...
- 【Mysql】phpMyAdmin安装与配置
phpMyAdmin概念 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库.借由此Web接口可 ...
- maven错误:Project configuration is not up-to-date with pom.xml
原因: 1.导入maven工程后,出现如下错误: Description Resource Path Location TypeProject configuration is ...
- 【数位dp】bzoj2089 不要62
http://www.cnblogs.com/xiaohongmao/p/3473599.html #include<cstdio> using namespace std; int n, ...
- C# 图片盖章功能实现,支持拖拽-旋转-放缩-保存
实现图片盖章功能,在图片上点击,增加“图章”小图片,可以拖拽“图章”到任意位置,也可以点击图章右下角园框,令图片跟着鼠标旋转和放缩. 操作方法:1.点击增加“图章”2.选中移动图标3.点中右下角放缩旋 ...