WPS Excel本身没有正则表达式函数,这里利用 wps js自定义函数的功能来实现,封装好函数后就可以在单元格用公式使用正则表达式了,wps2020以后的版本只要支持js宏都可以用,先看动画效果:

通过wps宏编辑器自定义RegExpMatch、RegExpReplace两个函数,把代码保存为xlam文件(没有工作表的工作簿),然后添加到加载项,就能自动跟随Excel启动,不必每次手动打开,并且所有工作簿都能使用。

示例文件地址:https://download.csdn.net/download/huaermeier/87577827

//正则表达式匹配函数
//单元格引用函数方法 =RegExpMatch(字符串(必选), 表达式(必选), 索引(可选), 连接符(可选))
function RegExpMatch(text, pattern, index = 0, joint) {//单元格引用函数的时候,参数可能返回的是单元格,需要从单元格提取值if (typeof (text) == 'function') text = text.Value2if (typeof (pattern) == 'function') pattern = pattern.Value2if (typeof (index) == 'function') index = index.Value2if (typeof (joint) == 'function') joint = joint.Value2let i = pattern.lastIndexOf('/') //返回/字符最后的索引, e = pattern.slice(1, i)    //提取表达式, m = pattern.slice(i + 1)   //提取修饰符, re = new RegExp(e, m)      //创建正则对象if (re.test(text)) {let mch = text.match(re)if (joint) return mch.join(joint)if (index >= mch.length) return '超出索引范围[0, ' + (mch.length - 1) + ']'return mch[index]} else {return '无匹配'}}//正则表达式替换函数
//单元格引用函数方法 =RegExpReplace(字符串(必选), 表达式(必选), 替换的文本(必选))
function RegExpReplace(text, pattern, replaced) {if (typeof (text) == 'function') text = text.Value2if (typeof (pattern) == 'function') pattern = pattern.Value2if (typeof (replaced) == 'function') replaced = replaced.Value2let i = pattern.lastIndexOf('/') //返回/字符最后的索引, e = pattern.slice(1, i)    //提取表达式, m = pattern.slice(i + 1)   //提取修饰符, re = RegExp(e, m)          //创建正则表达式对象return text.replace(re, replaced)}

函数使用说明

一、RegExpMatch函数,提取匹配到的字符

RegExpMatch(字符串(必选),匹配模式(必选),索引(可选),连接字符(可选))

参数引用单元格或者直接输入都可以

参数

数据类型

描述

字符串

文本

必选。要处理的字符串

匹配模式

文本

必选。和js正则表达式语法一样:/模式/修饰符,例全局匹配连续数字/\d+/g

全局匹配title并忽略大小写/title/gi

修饰符g表示全局、i忽略大小写、m多行模式、s包括换行符

索引

数字

可选。返回匹配到的第几项,索引从0开始

连接字符

文本

可选。指定字符,拼接所有匹配到的项

案例1:全局匹配137、189、166开头的11位连续数字,用换行符拼接所有匹配项,文本在A2单元格,CHAR(10)在Excel中表示换行符

案例2:全局匹配137、189、166开头的11位连续数字,返回第3个匹配到的项,索引从0开始,所以第3项索引值为2

A2单元格字符串:15555555555、13716888157、17766688888、16655、16677788786、18916888689
匹配模式:/(137|189|166)\d{8}/g
案例1:=RegExpMatch(A2,"/(137|189|166)\d{8}/g",0,CHAR(10))
案例2:=RegExpMatch(A2,"/(137|189|166)\d{8}/g",2)
二、RegExpReplace函数,替换匹配到的字符

RegExpReplace(字符串(必选),匹配模式(必选),替换的文本(必选))

参数引用单元格或者直接输入都可以

参数

数据类型

描述

字符串

文本

同上

匹配模式

文本

同上

替换的文本

文本

必选。指定替换成的文本

案例3:将一段字符串的‘数字 + 斤’全部替换为‘1000斤’,文本在A8单元格

字符串:苹果1500斤,香蕉9万斤,火龙果300斤,橘子6万斤,柿子5万斤
匹配模式:/\d+[万斤]+/g
案例3:=RegExpReplace(A8,"/\d+[万斤]+/g","1000斤")

WPS Excel正则表达式函数提取复杂字符串文本相关推荐

  1. excel中用正则匹配_excel 中如何使用正则表达式函数提取或替换内容

    word中自带正则表达式,不过Excel中却没有内置.可以在VBA中定义一个正则表达式函数,然后Excel中就可以调用了.VBA代码如下(VBA高亮无效,凑合着看): 1.Function ExStr ...

  2. Excel利用函数提取文本内容中的数字

    话不多说在开始之前呢,嗯,需要下载方方格子函数扩展包.然后我们今天要讲的函数呢,是从文本内容当中提取数字.当然这个数字呢包含整数,也包含小数.好了 (方方格子插件) 1.先看动图演示吧 2.首先分解动 ...

  3. python numpy np.fromstring()函数(从字符串文本中提取数字,返回一维数组)(爬虫提取数字挺好用的)

    from numpy\core\multiarray.py def fromstring(string, dtype=None, count=-1, sep=''): # real signature ...

  4. wps/excel 正则表达式 提取数字

    本来想着使用Python,用正则表达进行数据的处理,但是考虑到业务人员不会使用Python, 方法一是准备使用excel中的公式进行处理 在进行使用的时候,发现业务人员使用的是wps,原微软中的一些公 ...

  5. Excel正则表达式一键提取英文和数字的操作

    如下图所示在实际的生活中想提取出数字和英文单位,来看小编是如何通过正则表达式实现的吧,先看动图演示 (方方格子插件) 1.为了对比我们将原数据进行复制 ​ 2.然后选择方方格子按钮 3.选择高级文本处 ...

  6. Excel正则表达式:提取选中区域正数负数和小数

    今天小编要和大家分享的是,Excel如何利用正则表达式,去提取选中区域的正数.负数.和小数的操作 (方方格子插件) 1.动图演示如下 2.为了做一个对比效果,我们可以复制一列数据出来 3.然后呢我们选 ...

  7. WPS Excel数据表格处理分析技巧

    WPS EXCEL如何分割指定的字符串 当EXCEL表格中有一列或多列字符串,你只需要其中一部分字符串,如何获取你想要的字符串呢?这需要将字符串分隔,只取出自己想要长度的字符就行,在EXCEL中可以使 ...

  8. 复习计算机二级 Excel常用函数公式

    求和函数 求平均函数 最大值/最小值函数 求个数函数 排名函数 逻辑判断函数 (多)条件求个数函数 (多)条件求和函数 乘积求和函数 查询函数 index函数 match函数 left/right函数 ...

  9. 查找字符位置_EXCEL函数公式大全之利用FIND函数MID函数提取字符串中间指定文本...

    EXCEL函数公式大全之利用FIND函数和MID函数组合提取字符串中间指定文本.EXCEL函数与公式在工作中使用非常的频繁,会不会使用公式直接决定了我们的工作效率,今天我们来学习一下提高我们工作效率的 ...

最新文章

  1. NeurIPS 2019放榜:华人作者贡献42%,谷歌170篇屠榜;国内清华第一,腾讯领衔产业界...
  2. 责任链模式 和观察者模式
  3. python实现火车票查询_python实现12306火车票查询器
  4. 用幼儿园所学拆解美国总统网络安全行政令(含软件供应链安全)
  5. supesite 更换目录或者域名操作方法
  6. android文字多行滚动显示,Android实现在TextView文字过长时省略部分或滚动显示的方法...
  7. 机顶盒天线接头怎么接_机顶盒时代来了,电视的天线接口以后该如何利用?
  8. linux 音频转换工具,Linux 音频格式转换初探
  9. C#毕业设计——基于C#+asp.net+SQL server的客户关系管理系统设计与实现(毕业论文+程序源码)——客户关系管理系统
  10. python的sorted用法_python的sorted用法详解
  11. 2022年电子邮箱哪个好用?邮箱大全测评来了,请及时查看哦
  12. 向安装包中添加设备 UDID. 蒲公英内测
  13. C# 获取系统显示器分辨率大小(多屏显示器)
  14. Vue项目实战:订单列表页面实现
  15. 网上查信用报告,什么是问题验证?
  16. 2018-09-11-二手车交易平台系统
  17. 修改“IP属地“,我们说不
  18. Linux常用命令——sysctl命令
  19. pageX,clientX,offsetLeft,scrollLeft的区别
  20. Linux-新建用户/群组以及修改文件权限

热门文章

  1. PaaS+低代码,更猛烈的云计算第三次浪潮
  2. idea 添加jar包到项目中
  3. 一个程序员的爱情宣言--程序员的情书
  4. wordpress手把手仿站操作
  5. 锁屏界面提示某些设置已隐藏_华为手机微信来消息不提示,从设置入手解决
  6. 使用Xshell 将Linux文件下载到本地或者将本地的文件上传到Linux
  7. 计算机游戏系统分析,《只狼:影逝二度》新手指南 全游戏系统解析!
  8. CentOS6.8中RabbitMQ的安装和配置俺们这些逗比遇到的坑好难填
  9. 南邮的计算机学院地址,南京邮电大学校区有几个 地址是什么
  10. 怎样可以快速有效减肥 分享您不知道的减肥快招