Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > найти ссылку регулярным выражением


Автор: Mitrich212 31.1.2011, 22:37
помогите , пожалуйста, написать правильно регулярное выражение, чтобы вытащить из текста страницы ссылку типа
http://mt0.site.com/ab/cdfr=m@34 известны все буквы, кроме 2-х последних цифр

 
Код

           reg = New Regex("*http://mt0.site.com/ab/cdfr=m@(\\d)*", RegexOptions.IgnoreCase)
            mat = reg.Match(html)

            If (mat.Success) Then

                GC = mat.Groups

                count = GC.Count

                If (count > 0) Then

                   End If
            End If


Автор: diadiavova 31.1.2011, 23:10
Точки надо экранировать обратным слешем. И для чего там звездочки в начале и в конце я тоже не понял. Кстати, если известна почти вся строка и ее длина, то можно и без регулярок обойти, а ограничиться методами класса String.

Автор: Kaerus 1.2.2011, 02:50
Собственно так будет (без групп):
Код
New Regex("http://mt0\\.site\\.com/ab/cdfr=m@\\d{2}", RegexOptions.IgnoreCase)

Хотя по собственному опыту скажу проще искать сами теги, типа:
Код
<a href="(.+?)"


P.S.
Полезный плагин для работы с регулярными выражениями в VS http://visualstudiogallery.msdn.microsoft.com/16b9d664-d88c-460e-84a5-700ab40ba452/

Автор: diadiavova 1.2.2011, 09:52
Kaerus, в бейсике не поддерживаются эскейп-последовательности в строковых литералах, так что удваивать обратный слеш не нужно.

Автор: Mitrich212 1.2.2011, 10:24
Спасибо,
добавил в конце (\d+) - теперь выбирает любое количество цифр после @m
заменил двойной\\ на одинарный \
работает (но как? так и не понял smile )

Автор: diadiavova 1.2.2011, 10:29
Цитата(Mitrich212 @  1.2.2011,  10:24 Найти цитируемый пост)
работает (но как? так и не понял  ) 

Что именно непонятно?

Автор: Mitrich212 1.2.2011, 12:29
да просто регулярные выражения, как китайская грамота. скобочки, слэши и проч.. в данном случае все понятно, просто пошутил.. спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)