大数跨境

正则函数中(?<=)和(?=)有什么区别?,<,=,(,)表示什么意思

正则函数中(?<=)和(?=)有什么区别?,<,=,(,)表示什么意思 浅谈出口账务和excel函数
2026-09-06
6
:**< 表示方向(向前看),= 表示条件(等于/符合),( 和 ) 是语法边界,把它们组合起来就形成了两种完全相反的“位置匹配”规则。

---

1. 符号拆解

符号 含义(在 (?<=) 和 (?=) 中)
( ) 语法边界。告诉正则引擎“括号里的是特殊指令”,不是普通字符。
? 模式开关。固定写在左括号后面,表示“这不是捕获组,而是高级匹配”。
= 条件符号。表示“等于/符合”,即检查某个位置后面(或前面)是不是满足条件。
< 方向符号。有 < 表示向左看(匹配前面的内容),没有 < 表示向右看(匹配后面的内容)。

记忆口诀:** < 像箭头指向左边,所以是“看前面”**。

---

2. 核心区别

语法 名称 检查方向 匹配逻辑
(?=...) 正向前瞻 向右看 匹配后面是 ... 的位置
(?<=...) 正向后顾 向左看 匹配前面是 ... 的位置

---

3. 直观对比(看箭头方向)

· (?=X):站在当前位置,向右看,如果右边紧挨着 X,当前位置就算匹配。
  · 例子:6(?=月) 匹配“6月”里的 6,但不匹配“6日”里的 6。
· (?<=X):站在当前位置,向左看,如果左边紧挨着 X,当前位置就算匹配。
  · 例子:(?<=收)款 匹配“收款”里的 款,但不匹配“付款”里的 款。

---

4. 实战对比(同一字符串提取不同部分)

对 "姓名:张三" 分别使用两种语法:

公式 结果 解释
(?<=姓名:).+ 张三 向左看:找前面是“姓名:”的位置,然后匹配后面的内容
.+?(?=:) 姓名 向右看:找后面是“:”的位置,然后匹配前面的内容

---

5. 为什么这样设计?

< 的灵感来自箭头 <--,表示向左指,所以带 < 的是“看左边”;
= 表示相等/符合,是正则里固定的“断言”符号,无论左看右看都用它。

---

⚠️ WPS 特别提醒

· (?<=...) 里必须是固定长度:不能写 (?<=\d+)(会报错),只能写 (?<=\d) 或 (?<=2026)。
· (?=...) 没有长度限制:可以写 (?=\d+)。
· 括号和 ? 必须连续,中间不能有空格。

---

如果你是想提取“人民币符号¥后面的金额”,可以这样写:

```excel
=REGEXP("¥100元", "(?<=¥)\d+")
// 结果:100
```

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