php与JavaScript的正则表达式使用方法是否一样?
更新:2023-02-12 09:56:18
人气:102
来源:本站原创
A+
正则表达式原由JavaScript提出,后来应用于其它语言体系,成了一种独立的匹配技术。但是PHP的正则比标准javascript的要强大,js的正则库在PHP正则面前显得只是一个简约的基础库。
无论JavaScript、php、mysql还是nginx,正规则思路都是通用的,但具体的规则应用还是有区别的。我测试过部分通过在线测试的工具已经调通的情况下,但移植到PHP的应用中时却无法匹配,但基本规则还是一样的,我觉得需要特别注意的就是结尾后的标记符 //igms这种,正则表达式的优势就是模糊匹配的能力也是一种核心技术。
一、基本生成方法
字母前后各加一个斜杆。如:
var a = /http/;
二、常用标记(可选)
i:大小写不敏感;
g:全局匹配;
m:多行匹配;如:
var a = /http/i;
三、生成模式
一、位置指示
^和$表示开头和结尾。如:
var a = /^http$/i;
二、转义码(反斜杆)转义
字符串表示式中可能有冲突的/、^、$等正规表达式也使用到的符号。
常用的转义字符及其含义:
\’ 单引号
\” 双引号
\\ 反斜杠
\0 空
\a 警告(产生峰鸣)
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
如用转义符匹配”http://www.w3w.org/”的正则表达式:
var parttern = /http:\/\/www\.\w3w\.org\//
三、反复计算器确认计算次数。
* 0或多次
+ 1或多次
? 0或多1次
{m,n} 最少m次,最多n次
{m,} m次或更多次
{m} m次
var parttern = /^(\w+)|[\d]-)/;
四、过度匹配
为了防止正规表达式的过度匹配必须指定精确的条件。
五、分组和字符类
匹配一串字符时可以用破折号指定取值范围。如
var parttern = /[0-9]/
var parttern = /[a-z]/
任何大小写字母:
var parttern =/[a-zA-Z0-9]/
但字符串中有$%等特殊字符不能直接匹配,需要转义。
六、子表达式加上括号表示一个匹配单元。
var parttern = /(w+)([\d-]+)/;
七、可选量
用“|”表示几个可选条目,逻辑或关系。
var parttern = /^(thtp)|(https)/;
正则表达式看起来象天书一样,用处其实很大。
推荐的文章
随手记
PHP经验分享
- ● mysql错误:Foundoptionwithoutprecedinggroupinconfigfile
- ● PHP如何从一个数组数据列表中随机取其中的数值?
- ● PHP获取用户访问IP地址的5种方法
- ● PHP用imagerotate旋转图片和等比缩放压缩、添加水印
- ● php怎么把时间转成数字
- ● 利用PHPflush函数在运行过程中直接打印输出结果
- ● PHP中preg_match()和preg_match_all()正则表达式的用法区别
- ● PHP批量向百度主动推送URL加快收录的示例代码
- ● 使用PHP中3个神奇常量快速获取目录、文件名和行号
- ● PHP删除目录下指定时间天数前的文件