vb. net регулярное выражение для даты захвата истечения срока выставления счетов - PullRequest
0 голосов
/ 18 января 2020

Я не знаком с регулярным выражением, как преобразовать этот html источник просмотра страницы в регулярное выражение

"Your next bill is for <b class=\"recurring-price\">\u00a39.99<\/b> on <b class=\"recurring-date\">27\/01\/2020<\/b>."}

Поскольку я хочу зафиксировать дату истечения срока выставления счета

Вот мой код в vb. net

Dim overview As String = req.Post("https://www.sample.com/uk/account/overview/").ToString()
Dim pay As Match = Regex.Match(overview, "capture of expiration billing from regex")
TextBox1.Text = "Your next bill: " & pay.Groups(1).Value

1 Ответ

0 голосов
/ 18 января 2020

Лучше не использовать RegEx для разбора HTML. В итоге вы будете гоняться за хвостом и выдергивать волосы.

Вместо этого используйте HTML Agility Pack . Вы можете найти пакет NuGet здесь .

- РЕДАКТИРОВАТЬ -

Вот пример:

Public Sub Agility()
  Dim oDocument As New HtmlDocument
  Dim oResult As IEnumerable(Of HtmlNode)
  Dim dDate As Date

  oDocument.LoadHtml("<html><body>Your next bill is for <b class='recurring-price'>39.99</b> on <b class='recurring-date'>01/01/2020</b></body></html>")
  oResult = oDocument.DocumentNode.Descendants("b").Where(Function(Node) Node.HasClass("recurring-date"))

  If Date.TryParse(oResult.First.InnerText, dDate) Then
    ' Prints 1/1/2020 12:00:00 AM
    Console.WriteLine(dDate)
  End If

  Console.ReadKey()
End Sub

Вы можете найти еще много здесь .

...