#regex
Вопрос:
Предполагая, что у вас есть строка, подобная этим 2 примерам:
- ABC DEF GHI JKL MNOPQR STUVWX
- ABC DEF GHI JKL MNOPQR STU VWX
В первом примере я хочу вернуть STU, а во втором-VWX
- Я знаю, что могу использовать ^.{3}, чтобы получить первые 3 буквы всей строки, например ABC.
- Я знаю, что могу использовать [A-Za-z] $, чтобы получить последнее слово, например, STUVWX и VWX.
- Чего я не могу понять, так это как объединить это в одно регулярное выражение, которое возвращает STU и VWX.
Ответ №1:
Вы можете использовать группу захвата для сопоставления 3 символов A-Za-z и сопоставления необязательных символов до конца строки.
Чтобы предотвратить частичное совпадение, вы можете добавить границу слова b
b([A-Za-z]{3})[A-Za-z]*$
Демонстрация регулярных выражений
Другим вариантом, использующим поисковые запросы для получения совпадения, может быть утверждение границы пробела слева и утверждение необязательных символов A-Za-z до конца строки справа.
(?<!S)[A-Za-z]{3}(?=[A-Za-z]*$)