Как я могу получить весь контент между двумя каналами, используя регулярное выражение - PullRequest
3 голосов
/ 11 июля 2011

У меня есть строка, скажем

String s = "| India | vs Aus";

В этом случае результат должен быть только Индия .

Второй случай:

String s = "Aus vs | India |"; В этом случае результат должен быть только Индия .

3-й случай:

Строка s = "| Индия | против | Аус |" Итоговые шулы содержат только Индия, Aus . vs не должен присутствовать в выводе.

И в этих сценариях может быть любое другое слово вместо «например». Струна может быть такой же | Индия | в | Aus |. и струна тоже может быть такой | Индия | и | Шри-Ланка | в | Aus |. Я хочу, чтобы эти слова присутствовали между двумя трубами, такими как Индия, Шри-Ланка, Аус.

Я хочу сделать это на Java.

Любой указатель будет полезен.

Ответы [ 2 ]

6 голосов
/ 11 июля 2011

Вы бы использовали регулярное выражение, подобное ...

\|[^|]+\| 

... или ...

\|.+?\| 

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

4 голосов
/ 11 июля 2011

Вы смотрите на что-то похожее на это:

    String s = "|India| vs |Aus|";
    Pattern p = Pattern.compile("\\|(.*?)\\|");
    Matcher m = p.matcher(s);
    while(m.find()){
        System.out.println(m.group(1));
    }

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

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