我有一个像这样的 String java:
String query= Select * from table where date between ('2016-05-03' and '2016-05-04' )
我想在我尝试之后删除括号:
String search="between";
if(query.toLowerCase().indexOf(search.toLowerCase()) != -1){
query=query.replaceAll("[()]","");
}
它有效,但如果查询在单词“between”之后或之前包含一些括号,它们也将被删除。示例:
SELECT column-names
FROM table-name1
WHERE value IN (SELECT date
FROM table-name2
WHERE date between ('2016-05-03' and '2016-05-04' ))
我只想删除“between”这个词后的两个第一个括号来得到这个:
SELECT column-names
FROM table-name1
WHERE value IN (SELECT date
FROM table-name2
WHERE date between '2016-05-03' and '2016-05-04')
谢谢你的帮助
最佳答案
您可以在正则表达式中表示您要更改的整个结构:
between\s*\(([^)]*)\)
并将其转化为
between $1
其中 $1
是对捕获括号内容的 [^)]*
组的引用。
仅当 between
后跟一个左括号时才会发生转换,并且会删除最近的右括号。
关于java - 仅删除定界符后的两个括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082437/