el_zako
el_zako

Reputation: 152

How do I split this String using regex in Java?

From this string: "/resources/pages/id/AirOceanFreight.xhtml"

I need to retrieve two sub-strings: the string after pages/ and the string before .xhtml.

/resources/pages/ is constant. id and AirOceanFreight varies.

Any help appreciated, thanks!

Upvotes: 3

Views: 330

Answers (4)

Antonio
Antonio

Reputation: 181

You can use split method in chain.

 String test = "/resources/pages/id/AirOceanFreight.xhtml";
 String result = test.split(".xhtml")[0].split("/resources/pages/")[1];

Upvotes: 1

Andreas Dolk
Andreas Dolk

Reputation: 114767

An alternative without jakarta commons. Using the constants:

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

you'll just have to do:

 String result = filename.substring(PATH.length(), filename.lastIndexOf(EXT));

Upvotes: 3

Dušan Stanojević
Dušan Stanojević

Reputation: 319

You can also try with the following regular expression pattern:

(?<=pages\/)(.+(?=.xhtml))

Upvotes: 0

Thilo
Thilo

Reputation: 262474

I like Jakarta Commons Lang StringUtils:

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

Or, if ".xhtml" can also appear in the middle of the string:

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

(I also like static imports)

Upvotes: 9

Related Questions