正则表达式怎么在EXCEL使用

正则表达式怎么在EXCEL中使用来提取第一个数字。如左列是DG_CA2546_D1DG_CA2546_E1DG_HoJ9509_A1DG_HoJ9509_B1右列能生成D... 正则表达式怎么在EXCEL中使用来提取第一个数字。如
左列是
DG_CA2546_D1
DG_CA2546_E1
DG_HoJ9509_A1
DG_HoJ9509_B1
右列能生成
DGRNC02
DGRNC02
DGRNC09
DGRNC09
展开
 我来答
仁昌爱娱乐
高粉答主

2020-02-16 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459797

向TA提问 私信TA
展开全部

工具/材料:Microsoft Office Excel2016版,Excel表格。 

1、首先选中Excel表格,双击打开。 

2、然后在该界面中,选中要使用正则表达式的单元格。

3、再者在该界面中,公式栏中输入正则表达式的公式“=RegexString(A1,"([\d]+)",1)”。

4、其次在该界面中,单元格里显示正则表达式结果。

5、继续在该界面中,选中单元格,向下拖动。 

6、最后在该界面中,成功显示正则表达式结果。

绿衣人敲门
推荐于2017-09-01 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63768
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部

1.新建一个空白工作簿,在工作表界面按下组合快捷键Alt+F11或者右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境,如下图所示:

2.在“代码窗口“中复制粘贴以下代码:

Sub RegTest()

    '定义正则表达式对象

    Dim oRegExp As Object

    '定义匹配字符串集合对象

    Dim oMatches As Object

    '创建正则表达式

    '定义要执行正则查找的文本变量

    Dim sText As String

    sText = "这是v一个正则表达式b的范例程序a代码"

    Set oRegExp = CreateObject("vbscript.regexp")

    With oRegExp

        '设置是否匹配所有的符合项,True表示匹配所有, False表示仅匹配第一个符合项

        .Global = True

        '设置是否区分大小写,True表示不区分大小写, False表示区分大小写

        .IgnoreCase = True

        '设置要查找的字符模式

        .Pattern = "[\u4e00-\u9fa5]+"

        '判断是否可以找到匹配的字符,若可以则返回True

        MsgBox .Test(sText)

        '对字符串执行正则查找,返回所有的查找值的集合,若未找到,则为空

        Set oMatches = .Execute(sText)

        '把字符串中用正则找到的所有匹配字符替换为其它字符

        MsgBox .Replace(sText, "")

    End With

    Set oRegExp = Nothing

    Set oMatches = Nothing

End Sub

如下图所示:


3.执行以上代码,将把 sText = "这是v一个正则表达式b的范例程序a代码" 变量中的中文字符全部删除,将只返回"vba"3个英文字符,如下图所示。其中的.Pattern = "[\u4e00-\u9fa5]+"表示匹配所有中文字符,Pattern属性是正则表达式对象的核心,当需要执行其它查找替换时一般都只需更改Pattern属性即可。

4.一些常见的正则Pattern如下:

[0-9]表示匹配任意一个数字

[a-zA-Z]表示匹配任意一个英文字母

[\u4e00-\u9fa5]表示匹配任意一个中文字符。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5065b6f8
2011-05-16 · TA获得超过1646个赞
知道小有建树答主
回答量:2169
采纳率:0%
帮助的人:936万
展开全部
=IF(MID(A1,6,1)="2","DGRNC02",IF(MID(A1,7,1)="9","DGRNC09","其他"))
追问
并不是只有DGRNC02、DGRNC09两种情况。
而且第一个数字出现的位置并非固定的。
右列表示的是“DGRNC0”加左列的第一个数字
追答
给你一个通用公式
=LEFT(MID(A1,MIN(FIND(LEFT(ROW($1:$11)-2),A1&-1/17)),MATCH(,-MID(A1,ROW(A:A),1))),1)数组公式。
可以查出数据 左列的第一个数字
然后你加上“DGRNC0” OK
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
excelfb
2019-07-17 · Excel常用在线工具介绍
excelfb
采纳数:2 获赞数:181

向TA提问 私信TA
展开全部

不用写vba和公式了,用正则式从Excel中提取信息,使用这个方法,如下图:

如果还需要测试自己写的正则式是否正确,点击测试一下我的正则式。

工具地址:www.excelfb.com 点击: (按正则式)拆分一列(单元格)为多列(提取单元格数字等)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式