在java中无法用正则表达式替换字符串
我试图替换查询中出现的字符串,如下所示:
SELECT * FROM DB WHERE AGE = 3 and NAME = 'VALUE'
我正在使用这个正则表达式:NAME\s*=\s*'[A-Z]+'
它工作得很好here
以下是我在Java中的尝试:
query.replaceAll("NAME\s*=\s*'[A-Z]+'", replacementString); // Gives me Invalid escape sequence message
query.replaceAll("NAME\\s*=\\s*'[A-Z]+'", replacementString);
Pattern pattern = Pattern.compile("NAME*= *'[A-Z]*'");
query.replaceAll(pattern.pattern(), replacementString);
Pattern pattern2 = Pattern.compile("NAME\\s*=\\s*'[A-Z]*'");
query.replaceAll(pattern2.pattern(), replacementString);
这些都不行
如何替换名称=‘值’出现的情况
# 1 楼答案
Java字符串是不可变的
您需要将
replaceAll
调用的结果分配给字符串:# 2 楼答案
试试这个
然后按照你的模式