Я пытаюсь сопоставить строку, начинающуюся с установленного слова "отель", затем дефиса, затем слова любой длины, затем другого дефиса и, наконец, числа любой длины.
Редактировать: Дима дал решение, в котором я нуждался, в комментариях к этому вопросу! Спасибо Диме.
Дальнейшее редактирование: разработка ответа Димы, добавление групп захвата, упрощающих извлечение введенной информации, и исправление последнего бита только для приема цифр:
^hotel-(.+)-(\d+)
^hotel-(.)*$
(Но отель-что-то БУДЕТ работать, согласно вашему первоначальному заявлению).
Итак, если вы действительно хотите что-то вроде:
hotel-XXXXXX-YYYYYYY
Тогда регулярное выражение:
^hotel-(.)*-(.)*$
Попробуйте онлайн-тестер регулярных выражений, например http://www.regextester.com/.
Если вы хотите совместить начало ввода, вы используете ^
.
поэтому, если у вас есть ^hotel-\b
, это заставит hotel
находиться в начале строки.
в качестве примечания вы можете использовать $
для конца строки аналогичным образом.
\bhotel-[^\s-]+-[^\s-]+\b
\b
означает, что это должно быть слово boundy
[^\s-]
означает что угодно, но -
или пробелы
^hotel-.+-.+
Или эквивалентно `^ hotel (-. +) {2,}