Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3874|回复: 1

各位老师,正则表达式中想匹配中文后数字“(?=[\u4e00-\u9fa5])\d+”但这个匹配不出

[复制链接]
发表于 2019-10-10 10:45 | 显示全部楼层 |阅读模式
2学分
是什么原因,或者有什么其他规则匹配出汉字后面的444来吗
Sub s5()
Dim st As String, rg As Object
st = "33鬼鬼444 8 8.8s8"
With CreateObject("VBScript.RegExp") '正则表达式
     .Global = True
     .Pattern = "(?=[\u4e00-\u9fa5])\d+"
     Set rg = .Execute(st)
End With
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-10-10 15:07 | 显示全部楼层
正则不熟 以下说法 供参考
1. 数字中的空格 难以处理
2. vba 中 表达式 不支持 (?=) 在左侧
----------------------------------------

Sub s5()
    Dim st As String, rg As Object
    Dim rg9 As String                                   '0 增加一个变量
    st = "33鬼鬼444 8 8.8s8"
    st = Replace(st, "", "A")                           '1处理空格
    With CreateObject("VBScript.RegExp")
         .Global = True
         .Pattern = "[\u4e00-\u9fa5]\d+"                '表达式: 多取前面一个汉字
         Set rg = .Execute(st)
         rg9 = Mid(rg(0), 2, 99)                        '取出数字
         Debug.Print rg9
    End With
End Sub

评分

参与人数 1学分 +2 收起 理由
0126 + 2 谢谢老师,

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 10:27 , Processed in 0.254882 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表