Как написать шаблон регулярных выражений для определения слов, начинающихся и заканчивающихся определенными символами - PullRequest
1 голос
/ 22 мая 2019

Я хочу найти слова, начинающиеся с @@ _ и заканчивающиеся _ @@.Нужно записать его как шаблон регулярных выражений Java.

Пример: abcd erhjr @@_dhsdj_@@ dshdgj andaj edwyhu @@_dgayw_@@ nssd.

Регулярное выражение должно найти @@_dhsdj_@@ и @@_dgayw_@@.

Я пытался использовать,

 Matcher m = Pattern.compile("@@_\b\S+?\b_@@").matcher(searchText);

1 Ответ

1 голос
/ 22 мая 2019

Вы можете использовать регулярное выражение, например

List<String> result = new ArrayList<>();
Matcher m = Pattern.compile("@@_\\S*?_@@").matcher(searchText);
while (m.find()) {
    result.add(m.group(0));
}

@@_\S*?_@@ будет соответствовать @@_, затем любые 0 или более непробельных символов должны быть как можно меньше, а затем _@@.

См. Демонстрационную версию regex и демонстрационную версию Java .

. Вы можете рассмотреть разбиение на пробелы, а затем получить любой элемент из полученного массива, который начинается с @@_и заканчивается _@@:

import java.util.stream.Collectors;
// ...
List<String> result = Arrays.stream(searchText.split("\\s+"))
            .filter(i -> i.startsWith("@@_") && i.endsWith("_@@"))
            .collect(Collectors.toList());

См. демонстрационную версию Java .

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