Замена значений в скобках функцией регулярного выражения - PullRequest
0 голосов
/ 17 июня 2020

У меня есть столбец с символами и цифрами в скобках. Я хотел бы удалить все, что указано в скобках.

Я использовал формулу {"=RegExpReplace(H2,"\([^)]*\)","")"}, чтобы удалить числовые значения из ячейки. Я хотел бы автоматизировать этот процесс из-за большого объема данных.

Я написал следующий модуль.

Sub RegexReplacingAPattern()
Dim stringOne As String
Dim regexOne As Object
Set regexOne = CreateObject("vbscript.regexp")
 
With regexOne
    regexOne.Pattern = "[\([^)]*\)]+"
    regexOne.Global = False
End With
    
End Sub

Пример ввода:

CBL:NM_005188:c.1254C>G_p.F418L(0.0762,1116), MET:NM_000245:c.2888-42_2888del43_p.splice site 2888-42_2888del43(0.7125,2122)

Пример вывода:

CBL:NM_005188:c.1254C>G_p.F418L, MET:NM_000245:c.2888-42_2888del43_p.splice site 2888-42_2888del43

1 Ответ

0 голосов
/ 17 июня 2020
Sub Tester()
    RegexReplaceIt Range("F20:F26"), "\([^)]*\)"
End Sub


Sub RegexReplaceIt(rng As Range, pattern As String)
    Dim regexOne As Object, c As Range
    Set regexOne = CreateObject("vbscript.regexp")
    With regexOne
        regexOne.pattern = pattern
        regexOne.Global = True
    End With
    For Each c In rng.Cells
        c.Value = regexOne.Replace(c.Value, "")
    Next c
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...