Как мне разделить эту строку с помощью регулярных выражений в Java? - PullRequest
3 голосов
/ 08 октября 2010

Из этой строки: "/resources/pages/id/AirOceanFreight.xhtml"

Мне нужно получить две подстроки: строку после страниц / и строку перед .xhtml.

/ resources / pages / постоянно.id и AirOceanFreight варьируются.

Любая помощь приветствуется, спасибо!

Ответы [ 4 ]

9 голосов
/ 08 октября 2010

Мне нравится Jakarta Commons Lang StringUtils :

String x = StringUtils.substringBetween(string, "/resources/pages/", ".xhtml");

Или, если ".xhtml" также может появиться в середине строки:

String x = substringBeforeLast(
              substringAfter(string, "/resources/pages/"), ".xhtml");

(мне также нравится статический импорт)

3 голосов
/ 08 октября 2010

Альтернатива без Джакарты.Используя константы:

 private final static String PATH = "/resources/pages/";
 private final static String EXT = ".xhtml";

, вам просто нужно сделать:

 String result = filename.substring(PATH.length(), filename.lastIndexOf(EXT));
1 голос
/ 08 октября 2010

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

 String test = "/resources/pages/id/AirOceanFreight.xhtml";
 String result = test.split(".xhtml")[0].split("/resources/pages/")[1];
0 голосов
/ 08 октября 2010

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

(? <= Pages \ /) (. + (? =. Xhtml)) </p>

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