Как сопоставить регулярное выражение в этом случае - PullRequest
2 голосов
/ 07 августа 2020

Я пытаюсь сопоставить регулярное выражение со следующими фразами:

RENT3 - LOCALIZA
HGRE11 - FII HG REAL
HGLG11 - FII CSHG LOG
HGBS11 - FII CSHGSHOP
KNRI11 - FII KINEA
NTCO3 - GRUPO NATURAON      NM
ITUB3 - ITAUUNIBANCO
ITSA4 - ITAUSA
ITSA4 - ITAUSA

Я пытаюсь использовать \s-\s(\w+)\w*$ и на данный момент получаю несколько строк, как вы можете проверить в этом примере:

https://regex101.com/r/I4JkVP/2

Как я могу получить все строки?

Моя цель с этим регулярным выражением - удалить все слова после первого слова, например:

RENT3 - LOCALIZA

после остается только слово: «RENT3».

Ответы [ 4 ]

0 голосов
/ 07 августа 2020

Я заменил последний \ w на . и работает.

0 голосов
/ 07 августа 2020

Попробуйте этот шаблон (?=\s-\s).*

Демо

0 голосов
/ 07 августа 2020

Чтобы сопоставить все первые слова:

^\w+(?=\s+-)

Пояснение

  • ^ Начало строки
  • \w+ Соответствие 1+ слов
  • (?=\s+-) Положительный просмотр вперед, утверждение, что справа - это 1+ пробельных символов и -

Для данных вашего примера вы также можете не указывать ^

Regex demo


Чтобы удалить все после первого слова, за которым следует дефис, вы можете использовать группу захвата и использовать ее в замене.

^(\w+)\s*-.*

Regex demo

0 голосов
/ 07 августа 2020

Вместо этого просто захватите первое слово как группу:

(?<identifier>\w+).*

Затем для каждого совпадения вызова линии, и если оно совпадает, то:

String identifier = matcher.group(“identifier”)

Намного легче читать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...