基础 - 不匹配指定的内容 ¶
作者:KK
发表日期:2017.7.9
要点速读 ¶
[0-9]
是用区间匹配数字嘛,但是不匹配(排除)数字就用[^0-9]
在区间里以
^
号开头就是排除这个区间的意思(反向逻辑)\D
是等价于[^0-9]
(排除数字),也是\d
的反义同上,
\W
也是相反于\w
同上,
\S
也是相反于\s
JS代码 ¶
console.log(
'12345678'.match(/[^5]+/g) // 1234 和 678
);
console.log(
'52345_abc'.match(/[^0-9]+/), // _abc 排除了数字
'52345_abc'.match(/\D+/) // _abc 与上面等价
);
console.log(
'82abc'.match(/[^a-b]+/g) // 82 和 c
);
console.log(
'hello!-?123'.match(/\W+/) // !-?
);
PHP代码 ¶
header('Content-type:text/plain');
preg_match_all('#[^5]+#', '12345678', $matchResult1);
print_r($matchResult1); // 1234 和 678
preg_match('#[^0-9]+#', '52345_abc', $matchResult2);
print_r($matchResult2); // _abc 排除了数字
preg_match('#\D+#', '52345_abc', $matchResult3);
print_r($matchResult2); // _abc 与上面等价
preg_match_all('#[^a-b]+#', '82abc', $matchResult4);
print_r($matchResult4); // 82 和 c
preg_match('#\W+#', 'hello!-?123', $matchResult5);
print_r($matchResult5); // !-?