Помогите с регулярным выражением
От: Аноним  
Дата: 04.07.09 22:16
Оценка:
помогите составить регулярное выражение.
Такие вот УРЛ валидные:

http://www.break.com/index/candy-fireworks-by-pes.html
http://www.break.com/index/hot-girl-pulls-off-insane-golf-trick-shot.html
http://www.break.com/usercontent/2009/7/rhythm-heaven-802807.html
http://www.break.com/tv-shows/the-office/identity-theft-814582.html
http://www.break.com/cute-girls/hot-model-minamo-kusano.html


такие нет:
http://www.break.com/
http://media1.break.com/RealTime/whatsnew/whatsnew1.html
http://media1.break.com/RealTime/mostviewed/daily/mostviewed1.html
http://www.break.com/channels.html
http://www.break.com/pictures/pictures.html
http://www.break.com/games/games.html

т.е. можно по следующему слову после первого / определить валидный или нет.
пробую так:
(?:[Bb][Rr][Ee][Aa][Kk]\.[Cc][Oo][Mm]/)(\w[\w|-]*^(pictures)[^games])
не работает. Т.е. как пойти по способу исключения или разрешения (разрешение лучше)?
спасибо
Re: Помогите с регулярным выражением
От: Caracrist https://1pwd.org/
Дата: 05.07.09 07:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>помогите составить регулярное выражение.

А>Такие вот УРЛ валидные:

А>http://www.break.com/index/candy-fireworks-by-pes.html

А>http://www.break.com/index/hot-girl-pulls-off-insane-golf-trick-shot.html
А>http://www.break.com/usercontent/2009/7/rhythm-heaven-802807.html
А>http://www.break.com/tv-shows/the-office/identity-theft-814582.html
А>http://www.break.com/cute-girls/hot-model-minamo-kusano.html


А>такие нет:

А>http://www.break.com/
А>http://media1.break.com/RealTime/whatsnew/whatsnew1.html
А>http://media1.break.com/RealTime/mostviewed/daily/mostviewed1.html
А>http://www.break.com/channels.html
А>http://www.break.com/pictures/pictures.html
А>http://www.break.com/games/games.html

А>т.е. можно по следующему слову после первого / определить валидный или нет.

А>пробую так:
А>(?:[Bb][Rr][Ee][Aa][Kk]\.[Cc][Oo][Mm]/)(\w[\w|-]*^(pictures)[^games])
А>не работает. Т.е. как пойти по способу исключения или разрешения (разрешение лучше)?
А>спасибо

способ разрешения:
(?i)^http://www.break.com/(index|usercontent|tv-shows|cute-girls)/.+

способ исключения:
(?i)^http://www.break.com/(?!RealTime|channels|pictures|games).+/.+

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

А еще в C# есть такая штука: RegexOptions
            Regex.IsMatch(urlStr, regExpPattern, RegexOptions.IgnoreCase);

Это вместо того чтоб писать "(?i)" как в моём примере.
~~~~~
~lol~~
~~~ Single Password Solution
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.