В Java у меня есть следующее регулярное выражение ([\\(\\)\\/\\=\\:\\|,\\,\\\\])
, которое компилируется, а затем используется для экранирования каждого из специальных символов ()/=:|,\
с обратной косой чертой следующим образом escaper.matcher(value).replaceAll("\\\\$1")
Таким образом, строка "A/C:D/C"
будет иметь вид "A\/C\:D\/C"
Позже в процессе мне нужно отменить эту замену. Это означает, что мне нужно сопоставить комбинацию \(
, \)
, \/
и т. Д. И заменить ее на символ, следующий сразу за символом обратной косой черты. Обратная косая черта, за которой следует любой другой символ, не должна совпадать, и могут быть случаи, когда специальный символ будет существовать без предшествующей обратной косой черты, и в этом случае он также не должен совпадать.
Поскольку я знаю все случаи, я мог бы сделать что-то вроде
myString.replaceAll("\\(", "(").replaceAll("\\)", ")").replaceAll("\\/", "/")...
но мне интересно, есть ли более простое регулярное выражение, которое позволило бы мне выполнить замену всех специальных символов за один шаг.