首先我们列出所有等价符
等价符 | 解释 | 举例 | \b | 与单词的边界匹配,即单词与空格之间的位置。 | "er\b"与"never"中的"er"匹配,但是不匹配"verb"中的"er"。 | \B | 与非单词边界匹配。 | "ea*r\B"与"neverearly"中的"ear"匹配。 | \d | 与一个数字字符匹配。 | 等价于[0-9] | \D | 与非数字的字符匹配 | 等价于[^0-9] | \s | 与任何白字符匹配,包括空格、制表符、分页符等 | 等价于[\f\n\r\t\v] | \S | 与任何非空白的字符匹配 | 等价于[^\f\n\r\t\v] | \w | 与任何单词字符匹配,包括下划线 | 等价于[A-Za-z0-9_] | \W | 与任何非单词字符匹配 | 等价于[^A-Za-z0-9_] | \f | 与分页符匹配 | | \n | 与换行符字符匹配 | | \r | 与回车字符匹配 | | \t | 与制表符匹配 | | \v | 与垂直制表符匹配 | |
下面我们仅对一下常用的等价符做一下说明,其余的大家自己测试吧。
<!DOCTYPE html>
<html>
<head>
<title>正则表达式的元字符-限定符</title>
</head>
<body>
<script type="text/javascript">
var str = 'team czyxteamworld';
var res = str.match(/\w{4}\b/g);
console.log(res);//匹配结果为['team', 'orld'],字符串的前后也算单词边界
var res = str.match(/\b\w{4}\b/g);
console.log(res);//匹配结果为['team'],字符串的前后也算单词边界
var str = 'team czyxteamworld';
var res = str.match(/team\B/g);
console.log(res);//['team'] 只能匹配到czyxteamworld中的team
var res = str.match(/team/g);
console.log(res);//['team', 'team'] 不加\B则匹配到所有team
var str = 'team123czyx';
var res = str.match(/\d{3}/g);
console.log(res);//['123'] 匹配3个连续的数字
var res = str.match(/\D{4}/g);
console.log(res);//['team', 'czyx'] 匹配4个连续的非数字字符
var str = 'team 123 czyx';
var res = str.match(/\s{4}/g);
console.log(res);//[' '] 匹配4个空白符
var res = str.match(/\S{4}/g);
console.log(res);//['team', 'czyx'] 匹配四个连续的非空白符
var str = '*?%&tEam123cz_yxhello';
var res = str.match(/\w{4}/g);
console.log(res);//['tEam', '123c', 'z_yx', 'hell'] 匹配连续的4个字母数字下划线
var res = str.match(/\W{4}/g);
console.log(res);//['*?%&'] 匹配四个连续的非字母数字下划线
var str = `
hello 123
world reg
`;
var res = str.match(/\n/g);
console.log(res);//['\n', '\n', '\n'] 匹配所有的换行符
</script>
</body>
</html>
|