Чтобы сделать что-то необязательное, вы должны использовать квантификатор ?
, который в основном означает ноль или один раз . 1 Теперь, если то, что вы хотите сделать необязательным, больше один символ, вы просто помещаете его в группу (предпочтительно, в группу без захвата) и затем следите за ней с помощью вопросительного знака-квантификатора.
Что-то вроде следующего должно работать для всех ваших примеров:
^(?:https?:\/\/)?(?:(?:www|m)\.)?twitter\.com\/\w+\/status\/\d+
Попробуйте онлайн .
Ссылки:
1 Другим необязательным квантификатором является *
, что означает между нулевым и неограниченным временем , но оно не подходит для вашего случая .