导航:首页 > 编程语言 > php正则表达式格式

php正则表达式格式

发布时间:2023-07-18 12:43:10

php正则表达式的使用技巧

PHP正则表达式的定义

用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找及替换操作

PHP中的正则函数

PHP中有两套正则函数 两者功能差不多 分别为

一套是由PCRE(Perl Compatible Regular Expression)库提供的 使用 preg_ 为前缀命名的函数

一套由POSIX(Portable Operating System Interface of Unix )扩展提供的 使用以 ereg_ 为前缀命名的函数 (POSIX的正则函数库 自PHP 以后 就不在推荐使用 从PHP 以后 就将被移除)

由于POSIX正则即将推出历史舞台 并且PCRE和perl的形式差不多 更利于我们在perl和php之间切换 所以这里重点介绍PCRE正则的使用

PCRE正则表达式

PCRE全称为Perl Compatible Regular Expression 意思是Perl兼容正则表达式

在PCRE中 通常将模式表达式(即正则表达式)包含在两个反斜线 / 之间 如 /apple/

正则中重要的几个概念有 元字符 转义 模式单元(重复) 反义 引用和断言 这些概念都可以在文章[ ]中轻松的理解和掌握

常用的元字符(Meta character)

元字符 说明

/A 匹配字符串串首的原子

/Z 匹配字符串串尾的原子

/b 匹配单词的边界 //bis/ 匹配头为is的字符串 /is/b/ 匹配尾为is的字符串 //bis/b/ 定界

/B 匹配除单词边界之外的任意字符 //Bis/ 匹配单词 This 中的 is

/d 匹配一个数字 等价于[ ]

/D 匹配除数字以外任何一个字符 等价于[^ ]

/w 匹配一个英文字母 数字或下划线 等价于[ a zA Z_]

/W 匹配除英文字母 数字和下划线以外任何一个字符 等价于[^ a zA Z_]

/s 匹配一个空白字符 等价于[/f/t/v]

/S 匹配除空白字符以外任何一个字符 等价于[^/f/t/v]

/f 匹配一个换页符等价于 /x c 或 /cL

匹配一个换行符 等价于 /x a 或 /cJ

匹配一个回车符等价于/x d 或 /cM

/t 匹配一个制表符 等价于 /x /或/cl

/v 匹配一个垂直制表符 等价于/x b或/ck

/oNN 匹配一个八进制数字

/xNN 匹配一个十六进制数字

/cC 匹配一个控制字符

模式修正符(Pattern Modifiers)

模式修正符在忽略大小写 匹配多行中使用特别多 掌握了这一个修正符 往往能解决我们遇到的很多问题

i -可同时匹配大小写字母

M -将字符串视为多行

S -将字符串视为单行 换行符做普通字符看待 使 匹配任何字符

X -模式中的空白忽略不计

U -匹配到最近的字符串

e -将替换的字符串作为表达使用

格式 /apple/i匹配 apple 或 Apple 等 忽略大小写 /i

PCRE的模式单元

// 提取第一位的属性

/^/d{ } ([/W])/d{ }// /d{ }$匹配 / / 等字符串 但上述正则表达式不匹配 / 的格式 这是因为模式 [/W] 的结果 / 已经被存储 下个位置 / 引用时 其匹配模式也是字符 /

当不需要存储匹配结果时使用非存储模式单元 (? )

例如/(?:a|b|c)(D|E|F)// g/ 将匹配 aEEg 在一些正则表达式中 使用非存储模式单元是必要的 否则 需要改变其后引用的顺序 上例还可以写成/(a|b|c)(C|E|F)/ g/

PCRE正则表达式函数

以下为引用的内容

preg_match()和preg_match_all() preg_quote() preg_split() preg_grep() preg_replace()

函数的具体使用 我们可以通过PHP手册来找到 下面分享一些平时积累的正则表达式

匹配action属性

以下为引用的内容

$str = ; $match = ; preg_match_all( //s+action=/ (?!)( *?)/ /s/ $str $match); print_r($match);

在正则中使用回调函数

以下为引用的内容

/** * replace some string by callback function * */ function callback_replace() { $url = ; $str = ; $str = preg_replace ( /(?<=/saction=/ )(?!)( *?)(?=/ /s)/e search(/$url // ) $str ); echo $str; } function search($url $match){ return $url / $match; }

带断言的正则匹配

以下为引用的内容

$match = ; $str = xxxxxx cn bold font paragraph text

; preg_match_all ( /(?<=<(/w{ })>) *(?=</// >)/ $str $match ); echo 匹配没有属性的HTML标签中的内容 ; print_r ( $match );

替换HTML源码中的地址

以下为引用的内容

$form_ = preg_replace ( /(?<=/saction=/ |/ssrc=/ |/s)(?!|javascript)( *?)(?=/ /s)/e add_url(/$url / // / ) $form_ );

lishixin/Article/program/PHP/201311/21027

㈡ php正则表达式

这里涉及到正则表达式中得子串捕获的概念。php中的正则表达式使用的是pcre正则库,因此使用方式上和pcre是相同的,只不过是为了使用方便封装了一起便捷的操作而已。preg_match函数和preg_match_all函数用于在php中进行正则表达式的相关处理。下面看下preg_match函数的定义:intpreg_match(string$pattern,string$subject[,array&$matches])在$subject中查询$pattern,如果找到则把匹配的字符串存储在$matches中。$matches[0]中存放整个匹配的字符串,$matches[i]中存放匹配到的第i个捕获子串。题目的解决方法:$pattern="/^NAME(.*){$/";preg_match($pattern,$string,$match);echo$match[1];//$match[1]为提取的NAME和{之间的内容。关于捕获组信息($match的信息)详情,可以参考文档:http://wang

㈢ PHP 正则表达式总结

PHP 正则表达式总结

1.PHP中两个常用的正则函数

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.模式修正符

模式修正符是为正则表达式增强和补充的一个功能,使用在正则之外 例如:/ 正则 / 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 身份证的正则表达式怎么写

$IdCard = "/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i";
提示 :正则格式: ‘/岁碧激正则表乎袜达式/模式修正符’;
所以 添加 i 是忽略英文字母大慧厅小写的

㈤ php正则表达式如何写

<?php

$m = "topindex.php?zlId=1-3-10dd-10-10-ZL-d-2";

echo preg_replace("/topindex\.php\?zlId=(\w*)-(\w*)-(\w*)-(\w*)-(\w*)-(\w*)-(\w*)-(\w*)/","topindex.php?zlId=$1&cdhId=$1&dhId=$3&zhId=$4&shId=$5&field=$6&sort=$7&page=$8",$m);

?>

问题补充: 你的描述很不清楚:但是可以转换成你要的那种
<?php

$str='<table cellpadding="0" cellspacing="0" align="center">
<tr>
<td class="title">
<h1><a href="/topview/600010.html" class="stockname">包钢股份</a></h1>
<span class="code" value="SH600010">600010</span>
</td>

<td>
功能<br /><a href="#usage" onclick="return showCon()">指标用法</a>
</td>
<td>资金流向<br /><a href="" )">分时线</a></td>

<td class="td1">
上一支股票:<a href="/600009.html" title="上一支股票">上海机场(600009)</a><br />
下一支股票:<a href/600011.html" title="下一支股票">华能国际(600011)</a>
</td>
</tr>
</table>
';
echo preg_replace("/<td>.*功能.*<td.*>.*<\/td>/isU","",$str);
?>

㈥ 超常用的PHP正则表达式收集整理

以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。
一、表单验证匹配
验证账号,字母开头,允许
5-16
字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z
A-Z]$
验证账号,不能有空格,不能非数字:^\d+$
验证用户密码,以字母开头,长度在
6-18
之间:^[a-zA-Z]\w{5,17}$
验证是否含有
^%&',;=?$\
等字符:[^%&',;=?$\x22]+
匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配日期,只能是
2004-10-22
格式:^\d{4}\-\d{1,2}-\d{1,2}$
匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7,8}$------------评注:匹配形式如010-12345678
或0571-12345678

0831-1234567
匹配中国邮政编码:^[1-9]\d{5}(?!\d)$
匹配身份证:\d{14}(\d{4}|(\d{3}[xX])|\d{1})------------评注:中国的身份证为15
位或18

不能为空且二十字节以上:^[\s|\S]{20,}$
二、字符匹配
匹配由
26
个英文字母组成的字符串:^[A-Za-z]+$
匹配由
26
个大写英文字母组成的字符串:^[A-Z]+$
匹配由
26
个小写英文字母组成的字符串:^[a-z]+$
匹配由数字和
26
个英文字母组成的字符串:^[A-Za-z0-9]+$
匹配由数字、26个英文字母或者下划线组成的字符串:^\w+$
匹配空行:\n[\s|
]*\r
匹配任何内容:[\s\S]*
匹配中文字符:[\x80-\xff]+
或者
[\xa1-\xff]+
只能输入汉字:^[\x80-\xff],{0,}$
匹配双字节字符(包括汉字在内):[^\x00-\xff]
三、匹配数字
只能输入数字:^[0-9]*$
只能输入n位的数字:^\d{n}$
只能输入至少n位数字:^\d{n,}$
只能输入m-n位的数字:^\d{m,n}$
匹配正整数:^[1-9]\d*$
匹配负整数:^-[1-9]\d*$
匹配整数:^-?[1-9]\d*$
匹配非负整数(正整数
+
0):^[1-9]\d*|0$
匹配非正整数(负整数
+
0):^-[1-9]\d*|0$
匹配正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
匹配负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
匹配浮点数:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
匹配非负浮点数(正浮点数
+
0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
匹配非正浮点数(负浮点数
+
0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
四、其他
匹配HTML标记的正则表达式(无法匹配嵌套标签):<(\S*?)[^>]*>.*?</\1>|<.*?
/>
匹配网址
URL
:[a-zA-z]+://[^\s]*
匹配
IP
地址:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
匹配完整域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
提示
上述正则表达式通常都加了
^

$
来限定字符的起始和结束,如果需要匹配的内容包括在字符串当中,可能需要考虑去掉
^

$
限定符。
以上正则表达式仅供参考,使用时请检验后再使用,希望通过这些超常用的PHP正则表达式

㈦ php 怎样判断一个字符串为正则表达式

PHP 中的正则表达式格式为 : /.*/

如果这个字符串由 / 开头, 由 / 结尾,应该就是一个正则表达式。

header('content-type:text/html;charset=utf-8');

$preg="/^/.*/$/";
$test="/abc/";

if(preg_match($preg,$test)){
echo'是正则表达式';
}else{
echo'不是正则表达式';
}
阅读全文

与php正则表达式格式相关的资料

热点内容
命令来自剃头的用英语怎么说 浏览:765
什么app不花一分钱买东西 浏览:373
布林四线指标源码 浏览:968
单片机的控制板 浏览:218
襄阳软件编程 浏览:841
sshpass命令 浏览:106
logo服务器怎么下载 浏览:508
如何ftp连接服务器 浏览:674
creo自动编程 浏览:161
云服务器在电脑怎么开 浏览:432
ipad相册如何在文件夹中建文件夹 浏览:621
和家亲这个app有什么用 浏览:575
什么app里面有种树打折 浏览:374
编程外挂入门教学 浏览:974
pdf黑白转彩色 浏览:725
英国投资加密货币吗 浏览:887
看完程序员那么可爱后的感受 浏览:131
广播在什么APP能听 浏览:678
阿克曼小车连接什么app 浏览:773
all100编程器 浏览:182