путаница с использованием регулярных выражений - PullRequest
0 голосов
/ 25 марта 2012

Если я хочу использовать регулярное выражение, чтобы найти "<" или ">" в строке и разделить строку на основе "<" или ">", как бы я это сделал?

дляНапример, у меня может быть строка, которая выглядит следующим образом:

String str = <name> hello bob, how are you today </name>

Я нашел эти две ссылки, но я все еще чувствую растерянность: ссылка 1 ссылка 2

Ответы [ 2 ]

3 голосов
/ 25 марта 2012

str.split("[<>]");

Скобки означают, что вы будете соответствовать любым символам внутри них

1 голос
/ 25 марта 2012

Существует два способа реализации or в регулярном выражении:

  1. Чередование с использованием оператора |:

    • a|b означает «a или b».
    • любой под-регул может быть с любой стороны от |: one|two.*three означает «one или (two, за которым следует любая строка, за которой следует three)».
    • вам может потребоваться заключить чередование в скобки, чтобы ограничить область чередования: ^(one|two.*three)$
  2. Классы персонажей:

    • [ab] означает «один символ из коллекции ab».
    • Возможно инвертирование: [^ab] означает «любой символ, кроме a или b».
    • Поддерживаются диапазоны: [a-b] означает «любой символ из коллекции abc».

Так что в вашем случае возможное регулярное выражение будет (<|>) или [<>], где последний предпочтителен, поскольку обе альтернативы имеют длину ровно один символ.

Чтобы разбить строку, вы можете использовать метод .split():

String[] splitArray = subjectString.split("[<>]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...