Java Regex - поиск определенной строки в строке

1

Я пытаюсь сопоставить строку, начинающуюся с установленного слова "отель", затем дефиса, затем слова любой длины, затем другого дефиса и, наконец, числа любой длины.

Редактировать: Дима дал решение, в котором я нуждался, в комментариях к этому вопросу! Спасибо Диме.

Дальнейшее редактирование: разработка ответа Димы, добавление групп захвата, упрощающих извлечение введенной информации, и исправление последнего бита только для приема цифр:

^hotel-(.+)-(\d+)

  • 2
    Что не так с "отель-то"? Почему это не хорошо?
  • 1
    Это может быть: ^hotel-.+-.+ Или эквивалентно `^ hotel (-. +) {2,}
Показать ещё 2 комментария
Теги:
string

3 ответа

2
^hotel-(.)*$

(Но отель-что-то БУДЕТ работать, согласно вашему первоначальному заявлению).

Итак, если вы действительно хотите что-то вроде:

hotel-XXXXXX-YYYYYYY

Тогда регулярное выражение:

^hotel-(.)*-(.)*$

Попробуйте онлайн-тестер регулярных выражений, например http://www.regextester.com/.

1

Если вы хотите совместить начало ввода, вы используете ^.

поэтому, если у вас есть ^hotel-\b, это заставит hotel находиться в начале строки.

в качестве примечания вы можете использовать $ для конца строки аналогичным образом.

1
\bhotel-[^\s-]+-[^\s-]+\b

\b означает, что это должно быть слово boundy

[^\s-] означает что угодно, но - или пробелы

https://regex101.com/r/mH3vY8/1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню