user3064366
user3064366

Reputation: 1577

How to get String after a certain character using pattern matching?

String tect = "A to B";
Pattern ptrn = Pattern.compile("\\b(A.*)\\b");
Matcher mtchr = ptrn.matcher(tr.text()); 
while(mtchr.find()) {
    System.out.println( mtchr.group(1) );
}

I am getting output A to B but I want to B.

Please help me.

Upvotes: 5

Views: 162

Answers (3)

hwnd
hwnd

Reputation: 70722

You can just place the A outside of your capturing group.

String s  = "A to B";
Pattern p = Pattern.compile("A *(.*)");
Matcher m = p.matcher(s);
while (m.find()) {
  System.out.println(m.group(1)); // "to B"
}

You could also split the string.

String s = "A to B";
String[] parts = s.split("A *");
System.out.println(parts[1]); // "to B"

Upvotes: 3

Bohemian
Bohemian

Reputation: 424983

You can do it in one line:

String afterA = str.replaceAll(".*?A *", ""),

Upvotes: 0

Szymon
Szymon

Reputation: 43023

Change your pattern to use look-behind possitive assertion checking for A:

Pattern ptrn = Pattern.compile("(?<=A)(.*)");

Upvotes: 1

Related Questions