php与JavaScript的正则表达式使用方法是否一样?

寻技术 PHP编程 / JS脚本 2023年07月08日 151

正则表达式原由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)/;

正则表达式看起来象天书一样,用处其实很大。

关闭

用微信“扫一扫”