WebGL Tutorial
and more

通过种类指定字符

撰写时间:2024-03-01

修订时间:2024-03-03

概述

本章归类总结了正则表达式中指定字符的内容。具体来讲,可分为下面几大类。

字符分类具体分类例子
无分类普通字符Sarkuya
ASCII转义字符\t, \n, \0
特定种类的字符数字\d
非数字\D
字母\w
非字母\W
空白符\s
非空白符\S
任意字符.
范围内的字符特定范围内的字符集one|two
特定范围内的单个字符[xyz], [x-z]
不在特定范围内的单个字符[^xyz], [^x-y]

其中,指定普通字符的方式,以及指定范围内的字符,前面几章已有论述。ASCII转义字符部分,参见RegExp实例化一章。

本章着重讲述如何指定特定种类的字符。

数字

\d: 阿拉伯数字

用小写字母\d来匹配阿拉伯数字。

const src = `Today is March 3rd, 2024.`; let re = /\d/g;

\D: 非阿拉伯数字

用大写字母\D来匹配非阿拉伯数字。

const src = `Today is March 3rd, 2024.`; let re = /\D/g;

字母、数字与下划线

\w: 字母、数字与下划线

用小写字母\w来匹配字母、阿拉伯数字,以及下划线_

const src = `"num_23" is a valid variable name.`; let re = /\w/g;

空格、左括号(、右括号)及小数点.不属于范围之内,未被匹配。

\W: 非字母、非数字及非下划线

用大写字母\W来匹配既不是字母、阿拉伯数字,也不是下划线_的字符。

const src = `"num_23" is a valid variable name.`; let re = /\W/g;

空白符

\s: 空白符

用小写字母\s来匹配空白符。

const src = `One\nTwo\tThree\vFour\0Five`; let re = /\s/g;

空白符包括:空格、tab符号\t、换行符\n等。

对于换行符\n及回车符\r,情况有点复杂,感兴趣的读者可提前阅读匹配多行文本

\S: 空白符

用大写字母\S来匹配非空白符。

const src = `This is a sample sentence.`; let re = /\S/g;

任意字符

.来匹配任意一个字符。

const src = `I have 5 apples. I ate 3.`; let re = /./g;

.匹配的更多细节,请参见匹配多行文本

参考资源

  1. ECMA 262: RegExp Objects
  2. MDN: Regular expressions
  3. MDN: String literals
  4. MDN: Character escape: \n, \u{...}