используя регулярное выражение в Java.получать струны вокруг труб - PullRequest
1 голос
/ 23 ноября 2011

В огромной степени связано с нахождением совпадений внутри труб с помощью регулярного выражения java

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

|asd|qwe|zxc|||

Используя несколько регулярных выражений split ИЛИ, я получаю

result 1 = '',  
result 2 = 'asd',
result 3 = 'qwe',
result 4 = 'zxc',
result 5 = '',
result 6 = ''

результаты 1, 5 и 6 содержат строки 0 длины, и это нормально.но моя проблема в том, что я не могу получить результат, который дал бы мне строку нулевой длины справа от последней трубы.Я попробовал пару комбинаций, и я просто не могу понять это.Использование метода string.split также не позволяет получить строку нулевой длины с правой стороны последнего канала.но он получает первую строку нулевой длины на левой стороне первого канала.

Любая помощь, предложения будут оценены.Я не хочу заставлять других людей выполнять мою работу, мне просто нужна небольшая помощь в регулярных выражениях, так как я только начинаю понимать эту технологию.

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Вы хотите использовать метод двух аргументов String.split(String, int) со вторым аргументом -1:

"|asd|qwe|zxc|||".split("\\|", -1)

Метод с одним аргументом split() аналогичен вызову split("pattern", 0), который отбрасывает конечные пробелы.

Javadoc здесь: String.split (String, int)

0 голосов
/ 23 ноября 2011

Не очень красиво, но ..

if(yourString.endsWith("|")){
  String toSplit = yourString + "|";
  String[] tokens = toSplit.split("|");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...