Scala регулярное выражение для извлечения строки между. и пробелы - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть следующая строка:

val str = "tagged.big AND tagged.medium"

Мне нужно реализовать регулярное выражение, которое обретет все гарантии tagged. до первого пробела или конца строки. В текущем str я ожидаю извлечь 2 строки:

tagged.big
tagged.medium

Это моя текущая попытка:

val pattern = "tagged.*\\s".r

но возвращается:

Some(tagged.big AND )

Не могли бы вы показать правильное регулярное выражение для этого случая?

1 Ответ

0 голосов
/ 10 ноября 2018

Шаблон tagged\.\S+ должен работать здесь. Это будет соответствовать tagged., за которым следует один или несколько пробельных символов. Вот демо:

Демо

Так я бы написал шаблон. Проблема с вашим текущим шаблоном заключается в том, что .* является жадным и будет продолжать потреблять как можно больше, прежде чем ударить пробел. Кроме того, в случае последнего совпадения, tagged.medium, после него отсутствует пробельный символ. Итак, мы можем попробовать использовать это:

tagged.*?(?=\s|$)

Это также работает .

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