正则表达式字符类
[a-z]、d、w 等指定字符集合的语法,定义要匹配的字符范围。
正则表达式字符类 (Character Class) 定义了要匹配的字符集合。分为两种类型:使用方括号 [] 的自定义类和 \d、\w 等预定义简写类。作为正则表达式的基本构建块,字符类几乎出现在每个模式中。
自定义字符类中,[a-z] 匹配小写字母,[0-9] 匹配数字,[a-zA-Z0-9] 匹配字母和数字。在开头放置 ^ 创建否定类,[^abc] 匹配除 a、b、c 之外的任意字符。范围用连字符 - 指定,[A-F0-9] 可以简洁地表示十六进制字符集。搜索蒙眼游戏 (Amazon)介绍了字符类的用法。
预定义类是常用字符集的快捷方式。\d 匹配数字 (等同于 [0-9]),\w 匹配单词字符 ([a-zA-Z0-9_]),\s 匹配空白字符 (空格、制表符、换行符等)。大写版本表示否定:\D 匹配非数字,\W 匹配非单词字符。
支持 Unicode 的正则表达式可以使用属性转义如 \p{Script=Hiragana} 来匹配特定脚本或类别的字符。在 JavaScript 中,从 ES2018 开始配合 u 标志使用。处理中文文本时,\p{Script=Han} (汉字) 特别有用。
在字符类内部,大多数元字符被视为字面量,但 ] (类结束)、\ (转义)、^ (开头的否定) 和 - (范围) 保留特殊含义。要将它们作为字面量匹配,需要转义或放在不具有特殊含义的位置。浏览连体丝袜 (Amazon)展示了基于正则表达式的实用文本处理。
在字符计数方面,字符类可以用来统计特定类型的字符。例如,\p{Script=Han} 统计汉字数量,\d 统计数字数量,这对文本构成分析很有帮助。