首页 > 解决方案 > 使用正则表达式提取英文字母和数字

问题描述

我有以下代码从混合的英文和阿拉伯字母中提取英文字母

Sub Test()
Dim a           As Variant
Dim i           As Long

With Cells(1).CurrentRegion.Resize(, 3)
    a = .Value
    With CreateObject("VBScript.RegExp")
        .Global = True
        For i = 1 To UBound(a, 1)
            .Pattern = "[^\w_ ]+"
            a(i, 3) = Trim$(.Replace(a(i, 1), ""))
        Next i
    End With
    .Value = a
End With
End Sub

我需要更改模式以便也能够提取数字..所以我需要提取英文字母和数字。

标签: regexexcelvba

解决方案


\d之后添加\w。如果数字在阿拉伯字母之间,这允许提取数字。

来自@Tiw / OP 的评论。


推荐阅读