正则函数中(?<=)和(?=)有什么区别?,<,=,(,)表示什么意思
浅谈出口账务和excel函数 :**< 表示方向(向前看),= 表示条件(等于/符合),( 和 ) 是语法边界,把它们组合起来就形成了两种完全相反的“位置匹配”规则。
( ) 语法边界。告诉正则引擎“括号里的是特殊指令”,不是普通字符。
? 模式开关。固定写在左括号后面,表示“这不是捕获组,而是高级匹配”。
= 条件符号。表示“等于/符合”,即检查某个位置后面(或前面)是不是满足条件。
< 方向符号。有 < 表示向左看(匹配前面的内容),没有 < 表示向右看(匹配后面的内容)。
记忆口诀:** < 像箭头指向左边,所以是“看前面”**。
(?=...) 正向前瞻 向右看 匹配后面是 ... 的位置
(?<=...) 正向后顾 向左看 匹配前面是 ... 的位置
· (?=X):站在当前位置,向右看,如果右边紧挨着 X,当前位置就算匹配。
· 例子:6(?=月) 匹配“6月”里的 6,但不匹配“6日”里的 6。
· (?<=X):站在当前位置,向左看,如果左边紧挨着 X,当前位置就算匹配。
· 例子:(?<=收)款 匹配“收款”里的 款,但不匹配“付款”里的 款。
(?<=姓名:).+ 张三 向左看:找前面是“姓名:”的位置,然后匹配后面的内容
.+?(?=:) 姓名 向右看:找后面是“:”的位置,然后匹配前面的内容
< 的灵感来自箭头 <--,表示向左指,所以带 < 的是“看左边”;
= 表示相等/符合,是正则里固定的“断言”符号,无论左看右看都用它。
· (?<=...) 里必须是固定长度:不能写 (?<=\d+)(会报错),只能写 (?<=\d) 或 (?<=2026)。
· (?=...) 没有长度限制:可以写 (?=\d+)。
如果你是想提取“人民币符号¥后面的金额”,可以这样写:
=REGEXP("¥100元", "(?<=¥)\d+")