VBA - 正则表达式替换问题

时间:2017-03-26 19:25:40

标签: vba

我的代码:

    Public Sub IPCheck()
     Dim IP As String

     IP = Regex.IsMatch(TxbLog.Text, "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b")

     If IP = False Then
         MsgBox("IP NOT FOUND")
     Else
         MsgBox("IP FOUND")
         TxbLog.Text = Regex.Replace(TxbLog.Text, IP, " X")
     End If
    End Sub

问题在于它没有用X替换IP,我不知道为什么。 (我已经尝试用“未找到”交换替换线,以防我只是愚蠢但它仍然不起作用)

1 个答案:

答案 0 :(得分:0)

IsMatch方法返回Boolean,稍后使用Replace方法作为第二个参数没什么意义:True没有出现在你的字符串中,所以什么都没有被取代。

而是使用Match方法:

Public Sub IPCheck()
    Dim IP As String
    Dim match As Match

    match = Regex.Match(TxbLog.Text, "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b")

    If Not match.Success Then
        MsgBox("IP NOT FOUND")
    Else
        IP = match.Groups(0).Value
        MsgBox("IP FOUND: " & IP)
        TxbLog.Text = Regex.Replace(TxbLog.Text, IP, " X")
    End If
End Sub