У нас есть строка JAVA как
String str = "WHERE geoAreaName=\"Barcelona (Spain) EUR\" AND (startDate=\"2019-01-01\" AND endDate=\"2020-01-01\")";
. Нам нужно удалить из нее такие символы, как [ , ], ( , ), { , }
.
Шаблон регулярного выражения, идентифицирующий это: [\\[\\](){}]
Таким образом, при выполнении кода ниже, вывод:
System.out.println(str.replaceAll("[\\[\\](){}]" , ""));
>>> WHERE geoAreaName="Barcelona Spain EUR" AND startDate="2019-01-01" AND endDate="2020-01-01"
Это работает нормально, за исключением того, что нам нужно сохранить данные в двойных кавычках нетронутыми.
Barcelona (Spain) EUR
needsбыть неповрежденным и не преобразованным в Barcelona Spain EUR
Ожидаемый результат:
WHERE geoAreaName="Barcelona (Spain) EUR" AND startDate="2019-01-01" AND endDate="2020-01-01"
Итак, в двух словах, мне нужно регулярное выражение, которое будет идентифицировать символы в данной строке, за исключениемчасти, которые в кавычках.
Любая помощь приветствуется.