如何在excel中使用Regex来查找/替换字符串的结尾

时间:2017-10-04 18:42:09

标签: regex excel vba replace

我希望在Excel(或VBA)中快速查找替换以查找特定格式的字符串,并在末尾添加一些文本。

示例:查找:A123456

替换为:A123456 FA

我知道我的第一个角色是" A"后跟6位数字。我只需要添加一个空格和一些像#34; FA"在我上面的例子中。

某些单元格包含多个以空格或[Alt + Enters]分隔的字符串。防爆。 " A123456 [Alt + Enter] A987654"

Ex:查找:A123456 [Alt + Enter] A987654 [Alt + Enter] 101878

更换:A123456 FA [Alt + Enter] A987654 FA [Alt + Enter] 101878 FA

我尝试了,?,< >,〜*,〜?的随机配置,但我不知道会发生什么。 我没有找到我需要的这个问题,但似乎最有用。 https://support.office.com/en-us/article/Find-and-replace-text-and-other-data-in-a-Word-document-c6728c16-469e-43cd-afe4-7708c6c779b7?ui=en-US&rs=en-US&ad=US#ex1

1 个答案:

答案 0 :(得分:1)

意识到这是一个老问题,但是一直在用正则表达式练习并将此问题用作练习。我认为它会实现你想要的。将我引用的字符串替换为包含要测试的字符串的单元格值/范围。而不是使用项目+“FA”打印交换单元格值,即单元格(1,1)=项目+“FA”

Sub NewNew()

    Dim reg As RegExp
    Set reg = New RegExp

        reg.Pattern = "\b([aA\d]?\d{6})"
        reg.Global = True

    Dim arr As Variant

    Dim str As String
        str = "123456 A1456 B156221 A742121 C654123 A123456 D123456 E876543"

    Set arr = reg.Execute(str)

    For Each Item In arr
        Debug.Print Item + " FA"
    Next Item

End Sub