#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. моя проблема была решена, но не с помощью вашего метода возможно, это была моя вина, я не смог правильно объяснить свою проблему, но спасибо за ваши усилия