如何使用模式匹配获取某个字符后的String?

时间:2013-12-09 05:17:41

标签: java regex

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) );
}

我收到了输出A to B,但我想要to B

请帮帮我。

3 个答案:

答案 0 :(得分:3)

您可以将A放在捕获组之外。

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"
}

您也可以分割字符串。

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

答案 1 :(得分:1)

更改模式以使用A

的后视可能断言检查
Pattern ptrn = Pattern.compile("(?<=A)(.*)");

答案 2 :(得分:0)

您可以在一行中完成:

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