php、java、js、Vb正则表达是有啥不同之处吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php、java、js、Vb正则表达是有啥不同之处吗?相关的知识,希望对你有一定的参考价值。

参考技术A 我是这么认为的!正则表达式应该是一种通用规范,类似于XML语法规范。
唯一不同之处在于各种语言调用正则表达式的方法不同吧。

js正则表达


正则表达式:
2种声明方式,var reg = new RegExp(“abc”)
var reg = /abc/
不同之处在于第一种方式可以传参数(var x = “abc”)

转义:
所有在正则里边拥有特殊意义的字符都需要转义
转义方式:在特殊字符前加\(在字符串中也是转义的意思,所以在传参时要写\\d)
eg:
"ac:\"ads\"";
转义字符加特定的字母有特殊的意思:(正则中)

\d 数字;\D 非数字; \s/S 空格/非空格;

\w/W 字符(字母、数字、下划线)/非字符;

\b 独立部分(只要是独立的单词就行,除了\w)(hot-dot) /\bdog\b/;
\B 非独立部分

特殊字符:
/ \

标识:写在//之后或者传第二个参数
i 不区分大小写
g 全局匹配 match方法
m 换行匹配


方法:
正则.test(字符串) 匹配成功返回true
字符串.match(正则) 匹配成功返回(类)数组,否则null
字符串.search(正则) 返回出现的下标
字符串.replace(正则,字符(函数)参数) 正则匹配的替换成第二个参数(可以是函数) 函数的参数第一个是匹配的,第二个是子项
字符串.split(正则)

量词:
{2,5} >=2 <=5 {2} {2,}
在全局匹配的时候只返回一个,加上量词代表限制
/\d{2,5}/ 58a5s589 返回一个包含58 589的数组


几个特殊量词有特殊符号表示:
+ {1,}
? {0,1}
* {0,}

字符集:
代表一个范围
[a-h] [\u4e00-\u9fa5] (汉字匹配)
代表或者
[ab] a或者b
/[ab0-9]/ a或者b或者0-9 0-9是一个整体
除了...之外
[^ab] 除了a和b之外 ^必须放在开头才有意义


子项:
()
match方法如果没有加g,并且你有用()规定子项,则会显示/(a)(b)/
/阿飞(很帅|好屌)/ 可以将|的全局变为一个区间

或者:
|
全局 /阿飞很帅|阿飞很吊/

 

^ 起始部分 /^[1-9]/ 起始必须是1-9
$ 结束部分 /[1-9]$/ 结束部分必须是1-9
. 匹配所有字符 除了换行(\n \r) 在字符集中是有特殊意义的!

在字符集中具有特殊意义的有: . \ ] - ^(必须开头) /

 
















































以上是关于php、java、js、Vb正则表达是有啥不同之处吗?的主要内容,如果未能解决你的问题,请参考以下文章

Java中使用正则表达式验证手机号码,大家看我的代码有啥问题,没得出正确的结果。

快乐的JS正则表达式(开篇)

js正则表达

PHP 正则表达式

PHP正则表达式

Python 和 Javascript 正则表达式有啥不同?