Java正则表达式替换除少数字符组合之外的所有字符

标签 java regex regex-negation

输入字符串:NNULL(EUR,VALUE)+SOMESTR

预期输出:NNULL(X,X)+X

尝试的表达式:

String str = "NNULL(EUR,VALUE)+SOMESTR";
str=str.replaceAll("[^(NNULL)\\+,]+","X");

输出获取:

NNULL(XUX,XLUX)+X

最佳答案

您可以使用 (+ 进行正向查找

Regex101

String str = "NNULL(EUR,VALUE)+SOMESTR";
str=str.replaceAll("(?<=[(,+])\\w+","X");
System.out.println(str); // NNULL(X,X)+X 

关于Java正则表达式替换除少数字符组合之外的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38674731/

相关文章:

python - 正则表达式实现细节

java - Java 中的正则表达式模式

Python re.sub 问题

java - 如果字符串仅匹配 Java 中的一组,则使用正则表达式来匹配该字符串

除多字符标记之外的任何内容的正则表达式

java - 是否可以在 Java 中实现/覆盖 + 和++?

java - 这个烟灰依赖应用程序是否缺少依赖项?

java - Spring CrudRepository - 在集合中查找忽略大小写

java - 使用结果集

Java 正则表达式匹配器总是返回 false