.Net Regular Expression для получения текста между тегами в квадратных скобках - PullRequest
1 голос
/ 12 мая 2010

Хорошо, поэтому я хочу получить информацию на сайте, который находится между

[имена пользователей] и [/ имена пользователей]

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

Помните, у меня на странице будет больше, чем одна вещь.

Ответы [ 2 ]

3 голосов
/ 12 мая 2010
    'Sample input
    Dim html = "<html><head><title>Test</title></head>" & vbNewLine & "<body><p>[usernames]Your Name Here[/usernames]</p>[usernames]Another Name Here[/usernames]</body></html>"
    'Named pattern
    Dim p = "\[usernames\](?<UserNames>.*?)\[/usernames\]"
    'Grab all of the matches
    Dim Matches = Regex.Matches(html, p, RegexOptions.IgnoreCase Or RegexOptions.Singleline)
    'Make sure we found something
    If Matches IsNot Nothing AndAlso Matches.Count > 0 Then
        'Loop through all of the matches
        For Each Match As Match In Matches
            'Make sure our sub-group was a success
            If Match.Groups("UserNames").Success Then
                Trace.WriteLine(Match.Groups("UserNames").Value)
            End If
        Next
    End If
1 голос
/ 12 мая 2010

Вам лучше разбирать документ для каждого экземпляра.

регулярное выражение для соответствия одному экземпляру будет

/<usernames>([^<]+?)<\/usernames>/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...