0

我需要字符串示例的最后一个字母字符:ABRACADABRA123456. 正则表达式[a-zA-Z](?=\d+)在我所有的情况下都给了我匹配。如何更改(反转)表达式以在 java 方法中使用它,例如:"ABRACADABRA123456".replaceAll(<inverse-regex>,"")

输入:ABRACADABRA123456
使用:"ABRACADABRA123456".replaceAll(...)
输出:(A字符串的最后一个字母字符)

解决:System.out.println("ABRACADABRA123456".replaceAll("([\\D]+)([a-zA-Z](?=\\d+))([\\d]+)","$2")));

4

1 回答 1

0

[a-zA-Z](?=\d+)不会匹配最后一个字母字符。

System.out.println("ABRACADABRA123456".replaceAll("([A-Za-z])(?=[^A-Za-z]*$)","($1)"));

上面的正则表达式只有在它后面跟着任何非字母字符零次或多次直到最后一次时才会捕获字母表。所以它只匹配最后一个字母。

输出:

ABRACADABR(A)123456
于 2015-02-11T11:25:50.770 回答