大数跨境

正则函数\d和\S及\D,\s的用法

正则函数\d和\S及\D,\s的用法 浅谈出口账务和excel函数
2026-09-06
9
在WPS的REGEXP函数中,\d和\S都是字符匹配的简写式,但作用完全不同:

· \d(小写d):匹配任意一个数字(0-9)。等价于[0-9]。
· \S(大写S):匹配任意一个非空白字符。它不匹配空格、换行、制表符等,等价于[^ \t\n\r](注意S大写是取反,小写s才匹配空白)。

---

📝 举例说明

1. 提取数字(\d)
从 "订单号:A20260906" 中提取纯数字:

```excel
=REGEXP("订单号:A20260906", "\d+")
// 结果:20260906(+ 表示连续匹配多个数字)
```

2. 查找非空格内容(\S)
从 " 张三 李四 " 中提取所有非空字符:

```excel
=REGEXP(" 张三 李四 ", "\S+")
// 结果:{"张三","李四"}(按连续的非空白字符拆分,空格被跳过)
```

3. 组合使用——提取带格式的编号
从 "商品:A-100_$200" 中提取“非空白内容”:

```excel
=REGEXP("商品:A-100_$200", "\S+")
// 结果:商品:A-100_$200(因为字符串里没有空格,整体被视为一个连续块)
```

如果只想提取字母数字和下划线,改用\w+会得到A-100_200(注意$不会被匹配)。

---

⚠️ 关键区别

简写 匹配范围 典型场景
\d 仅数字 0-9 提取手机号、金额、日期
\S 除空格外的所有可见字符(含字母、数字、符号) 清理数据时去掉多余空格,或提取无空格的连续文本

特别注意:\S比\w的范围更广,因为\w只能匹配字母/数字/下划线,而\S可以匹配@#¥%等符号。

---

💡 常用变形

· \D(大写D):匹配非数字(反向取)
· \s(小写s):匹配空白(空格、换行等)
在WPS正则里,“反向取”就是指取反或排除。\D 的意思就是:匹配“不是数字”的任意字符。

你可以把它理解为\d的“对立面”:

· \d:只匹配 0-9 这10个数字。
· \D:除了 0-9 这10个数字之外,其他所有字符都匹配(包括字母、汉字、标点、空格、换行甚至emoji表情)。

---

📝 举个例子

从 "订单号:A2026" 中提取非数字部分:

```excel
=REGEXP("订单号:A2026", "\D+")
// 结果:"订单号:A" (因为 "+" 表示连续匹配,它会一直匹配到数字"2"之前)
```

这个公式的效果就是:把数字全部剔除,只留下文字和字母。

---

⚠️ 容易混淆的“反向”对照表

大写=反向(排除),小写=正向(包含):

小写(匹配这些) 大写(排除这些) 说明
\d 数字 \D 非数字 最常用,用于剔除数字
\w 单词字符 \W 非单词字符 匹配标点、空格、特殊符号
\s 空白字符 \S 非空白字符 匹配所有可见内容

---

💡 实战技巧

如果你想把一串文本里的所有数字都删掉,只保留汉字和字母,就可以这样写:

```excel
=REGEXP("2026年销量500件", "\D+")
// 结果:"年销量件"(数字全被跳过了)
```

反之,如果想只保留数字,就用 \d+。


【声明】内容源于网络
0
0
浅谈出口账务和excel函数
1234
内容 1330
粉丝 0
浅谈出口账务和excel函数 1234
总阅读19.3k
粉丝0
内容1.3k