问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

WPS新增REGEXP正则函数,八大场景应用详解

创作时间:
作者:
@小白创作中心

WPS新增REGEXP正则函数,八大场景应用详解

引用
1
来源
1.
https://bbs.wps.cn/topic/28251

WPS最新版本(版本号16894)新增了12个函数,其中包含了7个LAMBDA类函数、4个WPS独有函数以及2个其他类辅助函数。本文将重点介绍其中的REGEXP正则函数,并通过多个具体示例展示其在不同场景下的应用。

一、REGEXP函数基本语法

REGEXP函数的语法如下:

REGEXP(文本, 正则表达式, [匹配模式], [替换内容])
  • 文本:需要进行正则匹配的原始文本。
  • 正则表达式:用于匹配的正则表达式。
  • 匹配模式:可选参数,用于指定匹配模式(如提取、判断、替换等)。
  • 替换内容:可选参数,用于指定替换的内容。

二、REGEXP函数使用示例

1. 提取模式

  • 示例1:提取汉字

    =REGEXP(A2,"[一-龟]+")
    
  • 示例2:提取字母

    =REGEXP(A5,"[A-z]+")
    
  • 示例3:提取数字(包含小数)

    =REGEXP(A8,"\d+\.?\d*")
    

2. 判断模式

  • 示例4:判断是否为手机号
    =REGEXP(A2,"^1[3-9]\d{9}$",1)
    

3. 替换模式

  • 示例5:替换[]中的汉字后计算
    =EVALUATE(REGEXP(A2,"\[[一-龟]+\]",2))
    

4. 零宽断言

  • 示例6:提取金额

    =REGEXP(A2,"\d+(?=元|块)")
    
  • 示例7:提取手机号

    =REGEXP(A5,"(?<=^|\D)1[3-9]\d{9}(?=\D|$)")
    

5. 分组匹配

  • 示例8:银行卡号每4位加空格

    =REGEXP(A2,"(.{4})",2,"\1 ")
    
  • 示例9:删除日期

    =REGEXP(A2,"([一-龟]+)(\d{4}年\d{1,2}月\d{1,2}日)(\d+[元,块])",2,"\1\3")
    

6. 非贪婪模式

  • 示例10:提取括号中的内容
    =REGEXP(A2,"\(.+?\)")
    

7. 综合示例

  • 示例11:统计姓名出现次数

    =COLUMNS(REGEXP(CONCAT($A$2:$A$7&"-"),C2))
    
  • 示例12:拆分身份证号

    =REGEXP(A2,".")
    
  • 示例13:手机号、姓名互换位置

    =REGEXP(A2,"(\d{11})([一-龟]+)",2,"\2\1")
    

三、其他说明

  • 数组支持:REGEXP函数的第1个参数不支持数组,但是第2个参数支持数组。例如:

    =REGEXP(A2,{"[一-龟]+","[A-z]+","\d+"})
    
  • 降维操作:当需要对返回的结果进行再次计算时,可以使用类似"降维"的操作:

    =REGEXP(A2,{"[一-龟]+","[A-z]+","\d+"})&""
    
  • 提取多组:可以使用以下公式提取多组匹配结果:

    =TOROW(VSTACK(REGEXP(A2,"[一-龟]+"),REGEXP(A2,"[A-z]+"),REGEXP(A2,"(?<=[a-z])\d+")),,1)
    

以上是本次分享的内容,希望对大家有所帮助。如果在使用过程中遇到任何问题,欢迎留言探讨。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号