网站首页 > 教程分享 正文
什么是正则表达式?
正则表达式又称为规则表达式(模式表达式),它自身有完整的语法,为我们提供了一种更加灵活的字符串处理方法,正则表达式功能远比php字符串函数强大的多。正则表达式通过特定的模式,与输入的字符串比较,实现字符串的匹配、查找、替换等操作。这些模式的字符串,放在特定的正则表达式函数中使用才有效果。比如说“/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+(-.)\w+)*/”这是一个匹配邮箱的正则表达式。上面是一个简单的正则表达式,它按照正则表达式语法规则构建的,由普通字符和特殊功能的字符组成的字符串,这些模式字符串放在特定的正则表达式函数中使用才能有效果。
正则表达式作用
如果是第一次接触正则表达式,会感觉到它很繁琐,有种难以捉摸的感觉。正则表达式描述字符排列模式的一种自定义语法规则,在PHP中使用这种模式对字符串进行匹配、查找、替换及分割的操作,它的使用很广。最常见的是用正则表达式去验证用户提交的用户名、密码等信息是否符合规则;按标点符号计算文章有多少句子;抓取页面中的链接等;正则表达式不是PHP自己独有的,在其他语言比如说c#和java语言中也有应用,在B/S软件开发中、JavaScript、php以及mysql数据库都可以使用正则表达式。
PHP中正则表达式特点
在PHP中支持两套正则表达式的处理函数库。一套是PCRE库提供的,与Perl语言兼容的正则表达式函数。使用preg_为前缀命名的函数,而且表达式都包含在定界符中,如斜线/。另一套是POSIX扩展语法的正则表达式函数,使用以“ereg_”为前缀命名的。PCRE和POSIX两套函数库功能相似,执行效率有所不同,一般来说PCRE效率要高些。
正则表达式语法规则
正则表达式有自己完整体系的语法,正则表达式作为一个匹配的模板,正则表达式=原子(比如说字符a到z)+特殊字符(元字符,比如说*、+和?等)+模式修正符。正则表达式由三部分构成的,最简单的正则表达式,至少要包括一个原子。而且在与Perl语言兼容的表达式函数使用时,一定要加上定界符(包括在两个反斜杠“/”之间)。
1、定界符
使用与Perl兼容的正则表达式,通常需要将模式表达式放入定界符之间。最常见的定界符是反斜线“/”,除了字母、数字和正斜线“\”以外的任何字符都可以作为定界符号,例如“#”、“!”、“{}”等都是可以的。
2、原子
原子是正则表达式基本单位,每个正则表达式模式至少有一个原子。原子包含所有的大小写字母、数字、标点符号、其他的符号。例如,a-z、A-Z、0-9等,还有一些非打印的字符,如下图:
3、元字符
元字符就是正则表达式的具有特殊意义的字符,例如*、+、?等。如果正则表达式中包含元字符本身,使其失去特殊的含义必须加上“\”进行转义。正则表达式常见的元字符如下图:
在网页中任何属于HTML有效的链接标签,都可以和这个正则表达式模式匹配上。该模式拆分后如下:
1、定界符使用是两个反斜线“/”之间,模式放在它之间声明。
2、原子用到<、a、href、=、‘、”、/、>等普通字符和\t、\r、\n等转移符。
3、元字符用到[]、?、*、+等特殊含义的字符。
4、用到的模式修正符是在定界符后加一个反斜杠之后的三个字符“s”、“i”和“m”。
今天关于PHP中的正则表达式内容先说到这,改天咱们在接着聊。每天学习一个知识点,每日寄语“当你停止尝试时,就是失败的时候。”
猜你喜欢
- 2024-10-10 Java正则表达式教程及示例(java中的正则怎么使用)
- 2024-10-10 PHP正则表达式模式修饰符详解(php正则表达式语法)
- 2024-10-10 Python正则表达式(一)(python 正则表达)
- 2024-10-10 Oracle OAC系列:用正则表达式转换数据
- 2024-10-10 grep sed awk 的正则表达式不支持 \d? | BRE ERE PCRE
- 2024-10-10 vba 正则表达式入门(vba正则表达式详解)
- 2024-10-10 rm命令弱爆了(-rm命令)
- 2024-10-10 漫谈正则表达式(正则表达式实现原理)
- 2024-10-10 JMeter关联之正则表达式提取器(jmeter正则提取器获取返回值)
- 2024-10-10 Qt编程进阶(3):基本的正则表达式(qt使用正则表达式)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)