Как захватить с помощью регулярного выражения в VB.net

#regex #vb.net

#регулярное выражение #vb.net

Вопрос:

Я хочу захватить dal.socks.ipvanish.com с помощью регулярного выражения в vb.net из данного источника.

 </td>
 <td class="StatTDLabel">Dallas</td>
 <td class="StatTDLabel">dal.socks.ipvanish.com</td>
</tr>
  

Вот мой фрагмент кода, но это не работает, я не знаю, почему, может кто-нибудь помочь мне разобраться в этом.

 Dim str1 As Match = Regex.Match(TextBox1.Text, "<td class=""StatTDLabel"">(.*?)</td>n                    </tr>")

TextBox2.Text = str1.Groups(1).Value
  

Ответ №1:

Смотрите объяснение регулярного выражения здесь:https://regex101.com/r/pJAD31/1

По сути, вы должны сопоставить второе вхождение StatTDLabel"> , поскольку ваша входная строка имеет два одинаковых вхождения.

Смотрите рабочий код здесьhttps://dotnetfiddle.net/W9lbVH

 Imports System
Imports System.Text.RegularExpressions
                
Public Module Module1
    Public Sub Main()
        
        Dim pattern As String = "StatTDLabel"">.*?(StatTDLabel"">)(.*)</td>"
        Dim input As String = "</td> <td class=""StatTDLabel"">Dallas</td> <td class=""StatTDLabel"">dal.socks.ipvanish.com</td> </tr>"
        Dim options As RegexOptions = RegexOptions.Multiline
        Dim Match = Regex.Matches(input, pattern, options)
    
        Console.WriteLine (Match(0).Groups(2))
        
    End Sub
End Module
  

Комментарии:

1. фактический источник выглядит так

2. @M_Hashir, что вы подразумеваете под «фактическим источником, который выглядит так»

3. извините, я смог предоставить исходный код, потому что он был достаточно длинным. Проблема в том, что в исходном коде есть новая строка, но когда я использую n, она работает в Regex.com но не работает в VB.net

4. @M_Hashir Если мой ответ решил вашу проблему, то отметьте его как ответ или дайте мне знать здесь, если у вас все еще есть какие-либо проблемы

5. моя проблема была решена, но не с помощью вашего метода возможно, это была моя вина, я не смог правильно объяснить свою проблему, но спасибо за ваши усилия