龙再矜 2023-02-13 16:39 采纳率: 62.5%
浏览 34
已结题

VBA中正则表达式提取连续多个字母前的字符串

在VBA中,通过正则表达式提取一段文字当中,连续多个字母之前的字符串

原始字符串结果
好家伙H客家话FGTY1开始好家伙H客家话
口感哈和FGB2结束口感哈和
所得S到的VFGTYU3看看所得S到的
T小城大事DVEWAS4哦哦T小城大事
浩瀚海P洋VBGTY6前期浩瀚海P洋
宣传的思想CVFRTY5来了宣传的思想

尝试过的匹配模式 \w+ (?=[A-Za-z]+) ,得出的结果始终都包含得有字母。
最终结果如上列表所示,该怎么书写正则匹配模式才能得到不包含连续的字母,只想要连续字母前的字符串。

  • 写回答

2条回答 默认 最新

  • zmy1127 2023-02-13 18:42
    关注

    您可以使用下列正则表达式来实现提取连续多个字母前的字符串:

    (.*)\w+(?=[A-Za-z]+)(.*)
    

    您可以使用VBA中的RegExp对象,通过该对象的Execute方法来实现对字符串的匹配。下面是一个示例代码:

    Sub ExtractString()
        Dim str As String
        Dim regEx As New RegExp
        Dim Matches As MatchCollection
    
        str = "好家伙H客家话FGTY1开始"
        regEx.Pattern = "(.*)\w+(?=[A-Za-z]+)(.*)"
    
        Set Matches = regEx.Execute(str)
        If Matches.Count > 0 Then
            Debug.Print Matches(0).SubMatches(0)
        End If
    End Sub
    
    
    

    该代码执行后会在调试窗口输出“好家伙H客家话”。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月14日
  • 创建了问题 2月13日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵