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

php正则表达式详解

发布时间:2025-06-20 13:36:43

‘壹’ php从入门到精通—正则表达式—初识正则表达式、正则表达式语法规则、相关函数、常见应用、用法自查表

初识正则表达式

正则表达式,一种用于匹配和处理文本的字符串描述工具,广泛应用于Linux、Unix系统工具中,如Vi编辑器、Perl或PHP脚本语言以及Shell脚本等,展现出其强大的跨语言、跨系统应用能力。学习正则表达式,不仅能够简化文本处理任务,还能提高程序性能和代码效率。

正则表达式语法规则

行定位符(^和$)

通过行定位符(^和$),正则表达式支持定位功能,分别用于匹配字符串的开始和结束位置,精准控制字符在字符串中的定位。

单词定界符(\b和\B)

\b用于匹配单词边界,而\B匹配非单词边界,帮助识别文本中的单词分界,增强正则表达式的精确度。

字符类

通过方括号表达式([]),正则表达式实现对特定字符集的匹配,如忽略大小写的字符匹配,提升文本处理的灵活性。

选择字符(|)

|表示“或”操作,允许匹配多个选项之一,简化复杂匹配条件的表达。

连字符(-)

连字符简化表达式,匹配连续字符,如数字、字母等,提高匹配效率。

反义字符

使用^表示反义字符,匹配不在指定范围内的任意字符,优化文本匹配逻辑。

限定符

限定符指定匹配组件的重复次数,实现精确的文本匹配,提高正则表达式的应用范围。

点字符(.)

.匹配除换行符外的任意单个字符,用于灵活匹配文本中的字符。

转义字符

转义字符将特殊字符转换为普通字符,如\.匹配字符.,确保正则表达式中的特殊字符正常生效。

反斜线(\)

\在正则表达式中用于转义特殊字符,同时具有其他功能,如后接字母表示更多功能。

括号字符

括号用于改变优先级,组合小原子为大原子,整合匹配项,简化匹配逻辑。

反向引用

反向引用允许匹配连续出现的字符串或字母,通过表达式的“记忆”功能实现,提高匹配效率。

正则表达式相关函数

preg_match()函数

用于对指定字符串进行匹配,返回匹配结果或0(未匹配)。

preg_match_all()函数

全局匹配功能,从头到尾搜索匹配结果,直至获取所有相匹配的内容。

preg_replace()函数

实现字符串搜索和替换,功能强大,适用于复杂文本处理。

preg_split()函数

完成字符串的复杂分割操作,如同时分割多个字符。

preg_grep()函数

匹配数组中的元素,筛选出符合正则表达式模式的单元。

正则表达式常见应用

手机号码和邮箱验证

编写正则表达式匹配规范格式的手机号码和邮箱,确保数据输入的准确性。

验证网址URL合法性

构建正则表达式匹配合法的URL结构,确保网络资源的有效访问。

正则表达式用法自查表

总结正则表达式的用法,提供方便快捷的学习参考,帮助用户掌握正则表达式的书写规则。

总结:学习正则表达式能够有效提升文本处理效率,通过掌握其基本概念、语法规则以及常见应用,用户能够灵活运用正则表达式解决实际问题,提高程序开发和文本处理的能力。

‘贰’ php 正则表达式如何判断一个字符串是否为合法的四则数学算式

代码如下(经测通过):

<?php
$str="((1+1)*3.3)/10-12+(1+1)";
if(preg_match("/[+-*/.]{2}|[^+-*/()d.]+/i",$str,$matches)){
echo'非法算式';
}else{
if(substr_count($str,"(")==substr_count($str,")")){
echo'合法算式';
}else{
echo'括号不匹配';
}
}
?>


判断str里是否存在连续运算符、小数点或运算符、括号、数字以外的字符

若存在则非法

若不存在则判断str里( 和 )数量是否一致

‘叁’ 超常用的PHP正则表达式收集整理

以下就是对超常用的PHP正则表达式进行的收集整理,为了方便大家更快更好的掌握php正则表达式。

:]*$!是对php中单引号的转义。或者还有更简单的!^/?[a-z0-9=:]*$!ii表示忽略大小写。模式分隔符就是为了区分表达式和像i这样的模式修饰符而设计的。

什么是正则表达式:简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。

ThinkPHP的自动验证常用的正则一般我们见的比较多的是设置规则为require、email之类的,其实这些本身也是属于正则表达式验证方式,只是系统内置定义了一些常用的正则表达式而已。

关键地方是汉字的表示xa0-xff。下面是我写的例子程序,调试通过:?phpstr=汉字123456abcdef+-*/ABCDE!@#$%^&*()结尾。

‘肆’ php 正则表达式 只能包含字母和数字

式子:/^[a-zA-Z0-9]+$/u

释义:

"/":表示正则表达式的定义,固定写法。

"^":表示开头。

"[]":表示字符组。匹配所包含的任意一个字符。如,“[ab]”匹配“plain”中的“a”。

"a-z":表示匹配小写字母a-z的字母范围。

"A-Z":表示匹配大写字母A-Z的字母范围。

"0-9":表示匹配0-9的数字范围。

"+":表示匹配次数大于等于1。

"$":匹配输入行尾。如果设置了RegExp对象Multiline属性,$也匹配“ ”或“ ”之前的位置。

"u":最后的u是模式修饰符,严格的说可能叫预定义常量。表示使用unicode进行匹配。

(4)php正则表达式详解扩展阅读:

其它正则表达式符号的含义:

1、"*":匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。

2、"?":匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等价于{0,1}。

3、"{n}":n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。

4、"{n,}":n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。

5、"{n,m}":m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。

‘伍’ php正则表达式匹配一段中文,中间有换行,空白,应该怎么写

有多种处理方法:

1、使用[sS]匹配任意字符,而不是使用“.”
2、使用s单行修饰模式,例:$pattern='#abc.*?def#s';//能匹配abc换行def
3、使用s*匹配换行和空格,php里s能匹配空白字符,含换行

php里的中文使用[x7f-xff]表示,因此,使用正则:

$pattern='#[x7f-xff]+(?:s*[x7f-xff]+)*#';即可

阅读全文

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

热点内容
单片机流水灯程序c语言 浏览:212
程序员第二职业挣钱 浏览:227
运行里怎么输入服务器路径 浏览:831
pythonstepwise 浏览:497
刘一男词汇速记指南pdf 浏览:52
php认证级别 浏览:358
方舟编译啥时候推送 浏览:998
php手机验证码生成 浏览:665
哲学思维pdf 浏览:4
凌达压缩机有限公司招聘 浏览:524
weblogic命令部署 浏览:28
微差事app怎么注销账号 浏览:273
腾讯云服务器被无差别攻击 浏览:868
邮政app怎么查询转账凭证 浏览:839
程序员语言阅读 浏览:869
程序员考哪些证可以拿钱 浏览:872
发货商库存清点编程 浏览:721
app图标名字变了怎么回事 浏览:722
如何搭建流媒体服务器 浏览:279
360照片加密软件 浏览:643