2010-08-15 3 views
1

Я сделал это RegEx:Будет ли этот RegEx соответствовать любому сайту Stack Exchange?

/http:\/\/(.+)?\.?(stackoverflow|superuser|serverfault|stackapps|stackexchange)\.com\/questions\/([0-9]+)\/?.*/i 

Она должна соответствовать вопрос любого веб-сайта Stack Exchange. Это правильный RegEx? Я тестировал его, и он работает, но я не тестировал его на всех бета-сайтах, и, поскольку я знаю, что я сатана в мире RegEx, я знаю, что что-то не так (всегда есть что-то не так с моим RegExes xD) ,

Это хорошо? Благодарю.

ответ

1

Вы собираетесь использовать его против сторон, которые могут его обмануть? Я бы подумал, что это может совпадать с запросом url. (http://badguy.com?https://stackoverflow.com/questions).

Лучшим подходом может быть использование библиотеки синтаксического анализа URL или функции для безопасного извлечения важных компонентов.

+0

Это не имеет значения. Всегда хорошо, если задан хотя бы идентификатор вопроса (это единственное, что мне нужно от URL-адреса), но я проверяю RegEx в if-statement, чтобы проверить, не могу ли я удалить его из URL-адреса, см. Мой другой вопрос , http://stackoverflow.com/questions/3469714/check-if-a-string-matches-a-regex-and-strip-a-part-of-it-out-for-use для получения дополнительной информации. – 2010-08-15 18:17:00

1

Вы уверены, что хотите сделать это с помощью регулярного выражения? Я думаю, что было бы лучше, если бы вы сохранили все URL-адреса существующих сайтов somwhere и вместо этого использовали этот список. Когда вы используете регулярное выражение, вам нужно будет его обновить в любом случае, как только какой-либо из бета-сайтов начнет жить и выберет его домен ...

+0

Я знаю, что поддомен 'stackexchange.com' может быть выбран, но могут ли они также выбрать свой полный домен? – 2010-08-15 18:19:00

+0

Как только они покидают бета-версию, они находятся на пути к полномасштабным автономным сайтам со своим доменом. – silvo

+0

Mmm .. это действительно немного проблема:/ Ну, это для дополнительной, недокументированной функции для моего сайта, если ничего не происходит (не соответствует); люди не будут знать, что что-то должно произойти, и если что-то произойдет (RegEx действительно соответствует); это просто дополнительная awesomeness :) – 2010-08-15 18:21:57

Смежные вопросы