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

如何反转正则表达式以在java replaceAll方法中使用它?,java,regex,replaceall,lookaround,character-class,Java,Regex,Replaceall,Lookaround,Character Class,我需要字符串示例的最后一个字母字符:ABRACADABRA123456。正则表达式[a-zA-Z](?=\d+在所有情况下都为我提供匹配项。如何更改(反转)表达式以在java方法中使用它,例如:“ABRACADABRA123456”.replaceAll(,“”) 输入:ABRACADABRA123456 使用:“ABRACADABRA123456”。替换所有(…) 输出:A(字符串的最后一个字母字符) 已解决:System.out.println(“ABRACADABRA123456.repl

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

输入:
ABRACADABRA123456

使用:
“ABRACADABRA123456”。替换所有(…)

输出:
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

您的预期输出是什么?预期输出括号中的字母字符:
ABRACADABR(a)123456
@usmandam如果原始正则表达式是“数字前的字母”,那么“逆”是什么?数字后面的字母?不跟数字的字母?字母前的数字?我可以继续…预期的输出是最后一个
A
见上面的正则表达式。它匹配最后一个A。您也可以在模式和匹配器类中使用上面的正则表达式。