Поскольку вы не указали никаких ограничений для xxx или yyy, я предполагаю, что они должны соответствовать чему-то разумному, например «1 или более буквенно-цифровых c символов или тире / дефис» или в регулярном выражении: [a-bA-B0-9\-]+
не стесняйтесь настраивать это на что-нибудь еще в регулярном выражении:
^https:\/\/[a-bA-B0-9\-]+\.abc.com/[a-bA-B0-9\-]+\/\?(\&)?p=\d+/\d+$
разбивая его:
-
^
в начале и $
в end важны, потому что они гарантируют, что регулярное выражение соответствует всей строке, которую вы ему передаете (^
привязывает к началу входной строки, а $
связывает конец) без них, вы можете сопоставить любую строку, содержащую URL-адрес, как substring - части
[a-bA-B0-9\-]+
, как упоминалось выше, соответствуют любой последовательности буквенно-цифровых символов c или -
. Обратите внимание, что если вы используете структуру регулярных выражений, которая позволяет запускать регулярные выражения без учета регистра (например, perl / javascript как regex /regex/i
или в c# с использованием RegexOptions.IgnoreCase), вы можете безопасно изменить это на [a-b0-9\-]+
- остальное, я думаю, говорит само за себя ...