正则函数\d和\S及\D,\s的用法
浅谈出口账务和excel函数 在WPS的REGEXP函数中,\d和\S都是字符匹配的简写式,但作用完全不同:
· \d(小写d):匹配任意一个数字(0-9)。等价于[0-9]。
· \S(大写S):匹配任意一个非空白字符。它不匹配空格、换行、制表符等,等价于[^ \t\n\r](注意S大写是取反,小写s才匹配空白)。
从 "订单号:A20260906" 中提取纯数字:
=REGEXP("订单号:A20260906", "\d+")
// 结果:20260906(+ 表示连续匹配多个数字)
=REGEXP(" 张三 李四 ", "\S+")
// 结果:{"张三","李四"}(按连续的非空白字符拆分,空格被跳过)
从 "商品:A-100_$200" 中提取“非空白内容”:
=REGEXP("商品:A-100_$200", "\S+")
// 结果:商品:A-100_$200(因为字符串里没有空格,整体被视为一个连续块)
如果只想提取字母数字和下划线,改用\w+会得到A-100_200(注意$不会被匹配)。
\S 除空格外的所有可见字符(含字母、数字、符号) 清理数据时去掉多余空格,或提取无空格的连续文本
特别注意:\S比\w的范围更广,因为\w只能匹配字母/数字/下划线,而\S可以匹配@#¥%等符号。
在WPS正则里,“反向取”就是指取反或排除。\D 的意思就是:匹配“不是数字”的任意字符。
· \D:除了 0-9 这10个数字之外,其他所有字符都匹配(包括字母、汉字、标点、空格、换行甚至emoji表情)。
=REGEXP("订单号:A2026", "\D+")
// 结果:"订单号:A" (因为 "+" 表示连续匹配,它会一直匹配到数字"2"之前)
这个公式的效果就是:把数字全部剔除,只留下文字和字母。
\w 单词字符 \W 非单词字符 匹配标点、空格、特殊符号
\s 空白字符 \S 非空白字符 匹配所有可见内容
如果你想把一串文本里的所有数字都删掉,只保留汉字和字母,就可以这样写:
=REGEXP("2026年销量500件", "\D+")