问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用excel中的VBA的正则表达式提取出字符串?

发布网友 发布时间:2022-04-29 22:18

我来回答

5个回答

懂视网 时间:2022-04-23 09:49

这次给大家带来使用正则表达式提取字符串详解,使用正则表达式提取字符串的注意事项有哪些,下面就是实战案例,一起来看一下。

在JS的正则零宽断言匹配中,只支持前瞻匹配,不支持后瞻。这就尴尬了,因为在业务当中,我们大多时候是知道了要目标数据的前后缀字符串,但是并不想连同前后缀一起获取。

为了模拟后瞻,我想,要不就用笨方法,先将前后缀字符串一同提取,然后再讲前后缀字符串一同replace为空字符串。于是就有了下面这个简单的方法,但确实很实用:

示例代码如下

// 提取固定字符之间的字符串
function getInnerString(source, prefix, postfix) {
 var regexp = new RegExp(encodeReg(prefix) + '.+' + encodeReg(postfix), 'gi');
 var matches = String(source).match(regexp);
 var formatedMatches = _.map(matches, value => {
 return value
 .replace(prefix, '')
 .replace(postfix, '');
 });
 return formatedMatches;
}
//转义影响正则的字符
function encodeReg(source) {
 return String(source).replace(/([.*+?^=!:${}()|[]/\])/g,'\$1');
}

使用:

var a = '让我们荡起双桨吧';
getInnerString(a, '让我们', '吧'); // ['双桨']
var b = '老总和不在办公室,有事请留言给李秘书';
getInnerString(b, '有事请留言给', ''); // ['李秘书']

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

容易产生错误的js手机号码验证

在php与JS里怎么用正则匹配汉字

热心网友 时间:2022-04-23 06:57

1、首先打开需要编辑的Excel表格,进入到编辑页面中。

2、然后点击打开主菜单栏开发工具中的“Visual Basic”选项。

3、还可以鼠标右键单击工作标签,选择打开“查看代码”。

4、然后在弹出来的窗口中点击输入:

Function REFIND(str, re)

    Dim Reg As New RegExp

    With Reg

    .Global = True

    .Pattern = re

    Set matchs = .Execute(str)

        For Each Match In matchs

            y = y & " " & Match

        Next

    End With

    'MsgBox y

    REFIND = y

End Function

5、然后运行就可以得到结果了。

热心网友 时间:2022-04-23 08:15

Sub RegTest()
    Dim oRegExp As Object
    Dim oMatches As Object
    Dim sText As String
    sText = "柴塘河节制闸3300×4960平面钢闸门"
    Set oRegExp = CreateObject("vbscript.regexp")
    With oRegExp
        .Pattern = "\D+(\d+)\D+(\d+)\D+"
        Set oMatches = .Execute(sText)
        Debug.Print oMatches(0).submatches(0)    '第一个数
        Debug.Print oMatches(0).submatches(1)    '第二个数
    End With
    Set oRegExp = Nothing
    Set oMatches = Nothing
End Sub

程序中sText字符串来源可以从单元格赋值,

Debug.Print可以将两个数改为赋值给两个变量。

追问假设两个变量分别赋值给BBB与HHH,应该如何完整的写代码?

追答Debug.Print oMatches(0).submatches(0) '第一个数
Debug.Print oMatches(0).submatches(1) '第二个数
改成:
BBB=oMatches(0).submatches(0)
HHH=oMatches(0).submatches(1)
就行了,
可以对数据进行计算,如:
乘积=BBB*HHH

热心网友 时间:2022-04-23 09:50

软件版本:Office2007

方法如下:

1.利用正则表达式,提取A列的数字,并对数字求和:

2.Alt+F11,输入代码如下:

3.F5执行代码,返回Excel,得到结果:

热心网友 时间:2022-04-23 11:41

Sub t()
s = "柴塘河节制闸3300×4960平面钢闸门"
Set regxp = CreateObject("vbscript.regexp")
With regxp
.Global = True
.Pattern = "\d+"
For Each m In .Execute(s)
Debug.Print m
Next
End With
End Sub追问具体的代码呢?

追答Sub t()
s = "柴塘河节制闸3300×4960平面钢闸门"
Set regxp = CreateObject("vbscript.regexp")
With regxp
    .Global = True
    .Pattern = "\d+"
    For Each m In .Execute(s)
        Debug.Print m
    Next
End With
End Sub

如何用excel中的VBA的正则表达式提取出字符串?

1、首先打开需要编辑的Excel表格,进入到编辑页面中。2、然后点击打开主菜单栏开发工具中的“Visual Basic”选项。3、还可以鼠标右键单击工作标签,选择打开“查看代码”。4、然后在弹出来的窗口中点击输入:Function REFIND(str, re)Dim Reg As New RegExp With Reg .Global = True .Pattern = re S...

我也没想到在excel里用正则表达式这么简单

1. 调用VBA自身的正则功能,将函数存放于personal.xlsb文件中,供所有工作簿调用。也可以将其制作成加载宏,个人偏好是将所有公用代码存放于此。2. 使用re(,,,)函数前,需确保函数前缀正确且无提示。加载宏则能提供相关提示,方便选择。3. 举例说明:去除特定分类,通过公式`=PERSONAL.XLSB!re(E3,"\...

Excel VB宏,如何使用正则表达式截取指定格式的字符串?

End Sub 没必要用left来获取,vba正则本身就能得到完整的匹配项。如果日期排列不一样的话,就要换一种方式了

使用excel中的正则表达式提取文字

正则表达式,作为强大的字符串匹配工具,被广泛应用于验证用户输入如邮箱格式,或者在密码复杂度检查中。在Excel中,首先需要引入正则表达式模块,这相当于在Python中引入库。设置好全局匹配模式和匹配模式后,关键在于编写合适的正则模式,如`[\u4e00-\u9fa5]`用于匹配中文字符,而`^`则排除非中文字符。为...

怎么使用电脑Excel的正则表达式一键提取英文内容

具体如下:1. 第一步,打开电脑上的excel表格。2. 第二步,复制内容然后再空白处粘贴。3. 第三步,选中粘贴的内容。4. 第四步,点击上方菜单栏中的方方格子按钮。5. 第五步,点击弹出页面中的更多按钮,然后点击正则表达式。6. 第六步,在弹出页面中点击选择提取按钮,然后在正则表达式输入框中...

如何使用excel的VBA正则表达式截取字符串的iP

m = Cells(1, 1) '为字符所在单元格 a = InStr(m, ".")For i = a - 1 To 1 Step -1 If IsNumeric(Mid(m, i, 1)) = False Then c = i Exit For End If Next m = Right(m, Len(m) - c)b = InStrRev(m, ".")For i = b + 1 To Len(m)If IsNumeric(Mid(m,...

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

'1正则方法一,替换符合正则表达式的字符,可选参数RepStr为替换值 '2正则方法二 判断是否有符合正则表达式,有返回“TRUE”,无返回“FALSE”'3正则方法三,提取符合正则表达式的字符 '参数 Repstr 指定替换的字符,可选项,默认为空 '附常用几个正则表达式 '第二个参数Parttern为正则表达式,按规则使用...

如何在Excel VBA 中使用正则表达式

VBA使用正则的例子代码:Sub RegTest() '定义正则表达式对象 Dim oRegExp As Object '定义匹配字符串集合对象 Dim oMatches As Object '创建正则表达式 '定义要执行正则查找的文本变量 Dim sText As String sText = "这是v一个正则表达式b的范例程序a代码" Set oRegEx...

vba中用正则表达式提取数值给数组,求表达式?

VBA Code(假设在 Excel 的活动工作表的 A1 单元格中存储着上述 Json 字符串):Option ExplicitSub ExtractJsonData() Dim objRegExp As Object Dim objMatch As Object Dim objMatches As Object Set objRegExp = CreateObject("VBScript.RegExp") With objRegExp .IgnoreCase =...

EXCEL VBA 正则提取公式中的单元格?

示例程序代码和执行结果如下图:正则表达式:r.Pattern = "[A-Z]{1,3}[1-9][0-9]{0,6}"表示1-3个字母开始,接一个非0开始、最多7位的数字

正则表达式提取字符串 excel正则表达式提取 java正则表达式获取字符串 excel使用正则表达式 excel 正则表达式 常用 字符串正则表达式 正则表达式除去指定字符串 正则表达式替换字符串 正则表达式不匹配字符串
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见车轱辘差点轧脚上 老师回复家长的暖心话高情商回复 做梦梦到捡蚌壳且有很多蛇纹的 LG?G3官司方报价图片及参数 LG G3的屏幕尺寸为何达到2560x1440像素? 牙线挽救蛀牙 急!秦海璐演戏什么风格?演技如何? 我的电脑装过系统以后没有声音了,右下角的小喇叭还在请问是怎么... 中子星长什么样 中子星是一种什么样的恒星 请问如何 用 excel vba 的mid 函数,截取中间字符串 VBA 从第一个截取到倒数第二个字符,怎么写 excel中vba提取字符串问题 vba 如何提取字符串中的一部分? excel VBA,从字符串中提取数字。 vba如何将字符串中的指定的值截取出来 EXCEL 用VBA 提取字符串 怎么用vba提取字符串中的数字 Excel VBA怎么截取字符串 VBA编程:字符串定位后截取 oracle中的过程和函数有什么区别? 药品名的名词解释有哪些? 药品stp营销的含义是什么 药名词解释 妈妈说把晒得被子翻一下怎么翻? 晒被子多久翻一次面 家里房子面积比较大,在选择热水器的时候该注意些什么? 1个月宝宝鼻子不通气怎么办呀?宝宝这两天老是哭闹,看着好心疼呀! 絮完棉花的被子怎么翻过来快有好翻 宝宝3岁了,鼻子总不通气怎么回事 VBA 怎么提取提取字符串中间的一段字符串 VBA获取某个字符左边的所有字符 vba中怎么提取每一个字符? vba中如何取字符串之后的数字 EXCEL VBA 截取字符串问题 LED倒计时牌哪里有? 倒计时显示器学习式和通讯式的区别 英国蔚尔WAYLANDAYER品牌护肤好用吗? 英国蔚尔WAYLANDAYER美妆怎么样? stm32使用lcd1602显示屏制作倒计时 在Isis中数码显示器倒计时太快怎么办 电脑液晶显示器开机倒计时画面蓝色变成了*,进入系统后正常使用 amyel vin是什么品牌 有没有什么倒计时可以用来投在大屏幕上面啊 演讲比赛的一个时间倒计 求“a,v,y,i,r”开头的女生英文名和含义 好听的女生英文名。 最好要特别点,最好有好的内含 好听的女孩英文名~~谢谢~~~ 我要一些英文名子 并告诉我什么意思 阳光一点的 怎么给自己起一个还挺的英文名 比较好听的英文名有哪些 女生的