不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
正则表达式语法大全
编辑:admin 日期:2006-06-27
1、描述字符
根据正则表达式语法规则,大部分字符仅能够描述自身,这些字符被称为普通字符,另一类称为元字符,它和普通字符不同,大部分需要加反斜杠进行标识:
Tips:RegExp()构造函数参数为字符串,字符串加反斜杠表示的是字符本身,例如"\w"表示w本身,所以在RegExp()构造函数中使用元字符时,应使用双斜杠:new RegExp("\\w")。
2、字符范围
在方括号中可以包含多个字符,表示匹配其中任意一个字符。连字符(-)表示一个范围内的所有字符,脱字符(^)前缀表示范围之外的其他字符:
3、重复匹配
4、子表达式
使用小括号可以对字符模式进行任意分组,在小括号内的字符串表示子表达式,也称为子模式,子表达式具有独立的匹配功能,保存独立的匹配结果:
5、边界量词
6、选择匹配
选择匹配类似于JS的逻辑或运算,用竖线(|)表示在两个子模式的匹配结果中任选一个:
7、条件匹配
条件匹配表示必须满足指定的条件,但不会返回这些字符,语法:
例如:
根据正则表达式语法规则,大部分字符仅能够描述自身,这些字符被称为普通字符,另一类称为元字符,它和普通字符不同,大部分需要加反斜杠进行标识:
引用内容
.:查找单个字符,除了换行和行结束符;
\w:查找单词字符;
\W:查找非单词字符;
\d:查找数字;
\D:查找非数字字符;
\s:查找空白字符;
\S:查找非空白字符;
\b:匹配单词边界;
\B:匹配非单词边界;
\0:查找 NUL字符;
\n:查找换行符;
\f:查找换页符;
\r:查找回车符;
\t:查找制表符;
\v:查找垂直制表符;
\xxx:查找以八进制数 xxxx 规定的字符;
\xdd:查找以十六进制数 dd 规定的字符;
\uxxxx:查找以十六进制 xxxx规定的 Unicode 字符;
\w:查找单词字符;
\W:查找非单词字符;
\d:查找数字;
\D:查找非数字字符;
\s:查找空白字符;
\S:查找非空白字符;
\b:匹配单词边界;
\B:匹配非单词边界;
\0:查找 NUL字符;
\n:查找换行符;
\f:查找换页符;
\r:查找回车符;
\t:查找制表符;
\v:查找垂直制表符;
\xxx:查找以八进制数 xxxx 规定的字符;
\xdd:查找以十六进制数 dd 规定的字符;
\uxxxx:查找以十六进制 xxxx规定的 Unicode 字符;
Tips:RegExp()构造函数参数为字符串,字符串加反斜杠表示的是字符本身,例如"\w"表示w本身,所以在RegExp()构造函数中使用元字符时,应使用双斜杠:new RegExp("\\w")。
2、字符范围
在方括号中可以包含多个字符,表示匹配其中任意一个字符。连字符(-)表示一个范围内的所有字符,脱字符(^)前缀表示范围之外的其他字符:
引用内容
[abc]:查找方括号内任意一个字符;
[^abc]:查找不在方括号内的字符;
[0-9]:查找从 0 至 9 范围内的数字,即查找数字;
[a-z]:查找从小写 a 到小写 z 范围内的字符,即查找小写字母;
[A-Z]:查找从大写 A 到大写 Z 范围内的字符,即查找大写字母;
[^abc]:查找不在方括号内的字符;
[0-9]:查找从 0 至 9 范围内的数字,即查找数字;
[a-z]:查找从小写 a 到小写 z 范围内的字符,即查找小写字母;
[A-Z]:查找从大写 A 到大写 Z 范围内的字符,即查找大写字母;
3、重复匹配
引用内容
n+:匹配任何包含至少一个 n 的字符串;
n*:匹配任何包含零个或多个 n 的字符串;
n?:匹配任何包含零个或一个 n 的字符串;
n{x}:匹配包含 x 个 n 的序列的字符串;
n{x,y}:匹配包含最少 x 个、最多 y 个 n 的序列的字符串;
n{x,}:匹配包含至少 x 个 n 的序列的字符串;
n*:匹配任何包含零个或多个 n 的字符串;
n?:匹配任何包含零个或一个 n 的字符串;
n{x}:匹配包含 x 个 n 的序列的字符串;
n{x,y}:匹配包含最少 x 个、最多 y 个 n 的序列的字符串;
n{x,}:匹配包含至少 x 个 n 的序列的字符串;
4、子表达式
使用小括号可以对字符模式进行任意分组,在小括号内的字符串表示子表达式,也称为子模式,子表达式具有独立的匹配功能,保存独立的匹配结果:
引用内容
var s = "a=1, b=2, c=3";
var r = /\w+=\d+/g;
while (a = r.exec(s)) {
console.log(a);
}
//["a=1"]
//["b=2"]
//["c=3"]
var r = /\w+=\d+/g;
while (a = r.exec(s)) {
console.log(a);
}
//["a=1"]
//["b=2"]
//["c=3"]
引用内容
var s = "a=1, b=2, c=3";
var r = /(\w+)=(\d+)/g;
while (a = r.exec(s)) {
console.log(a);
}
//["a=1", "a", "1"]
//["b=2", "b", "2"]
//["c=3", "c", "3"]
var r = /(\w+)=(\d+)/g;
while (a = r.exec(s)) {
console.log(a);
}
//["a=1", "a", "1"]
//["b=2", "b", "2"]
//["c=3", "c", "3"]
5、边界量词
引用内容
^:在多行检测中,会匹配一行的开头;
$:在多行检测中,会匹配一行的结尾;
$:在多行检测中,会匹配一行的结尾;
6、选择匹配
选择匹配类似于JS的逻辑或运算,用竖线(|)表示在两个子模式的匹配结果中任选一个:
引用内容
(/[a-z]|[0-9]/).exec("123abc"); //["1"]
7、条件匹配
条件匹配表示必须满足指定的条件,但不会返回这些字符,语法:
引用内容
(?=匹配条件):条件必须匹配;
(?!匹配条件):条件禁止匹配;
(?!匹配条件):条件禁止匹配;
例如:
引用内容
(/\w*(?==)/).exec("one:1, two=2"); //["two"]
(/\w*(?!=)/).exec("one:1, two=2"); //["one"]
(/\w*(?!=)/).exec("one:1, two=2"); //["one"]
评论: 0 | 引用: 0 | 查看次数: 5269
发表评论
请登录后再发表评论!