标题:求解:VBA正则表达式,为什么这个匹配不出来
取消只看楼主
醉里流年
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2021-9-13
结帖率:100%
已结贴  问题点数:20 回复次数:3 
求解:VBA正则表达式,为什么这个匹配不出来
VBA代码如下,运行后提示错误5017,应用程序定义或对象定义错误
程序代码:
Sub 正则匹配()
Text = "电信手机号18158885555 电信支付宝绑定号码13345626621617 匹配号码15917777777以上"
With CreateObject("Vbscript.Regexp")
  .Global = True 'True表示匹配所有, False表示仅匹配第一个符合项
  .IgnoreCase = True  'True表示不区分大小写, False表示区分大小写
  .Pattern = "(?<=\D)1\d{10}(?=\D)"   '匹配字符模式
  Set mMatches = .Execute(Text)   '执行正则查找,返回所有匹配结果的集合,若未找到,则为空
  For Each mmatch In mMatches
    MsgBox mmatch.Value
  Next
End With
End Sub

用下面的测试工具测试,却可以匹配出来
https://
问题出在哪里呀- -
搜索更多相关主题的帖子: VBA With 正则表达式 匹配 表示 
2022-06-28 16:44
醉里流年
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2021-9-13
得分:0 
回复 2楼 apull
真的可以谢谢大佬,能解释一下为什么吗,难道正则表达式的规则也分很多种吗,我看的是那个测试网站的教程,怎么用它的测试工具可以匹配出来用VBA就不行呢
2022-06-29 09:23
醉里流年
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2021-9-13
得分:0 
回复 3楼 约定的童话
1\d{10}不行吧,有超过11位数的也截取了部分匹配出来了
2022-06-29 09:24
醉里流年
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2021-9-13
得分:0 
回复 2楼 apull
再次请教一下,一段文本如下:
13726567887电信手机号18158885555电信支付宝绑定号码133415626621617 匹配号码15917777777
如何匹配出所有的号码,即13726567887、18158885555、15917777777,而不把中间的15626621617匹配出来
2022-06-29 10:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509437-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012751 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved