如何反转正则表达式以在javareplaceAll方法中使用它



我需要字符串示例的最后一个字母字符: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")));

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

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

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

输出:

ABRACADABR(A)123456

相关内容

最新更新