如何用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位的数字