Скажем, у меня есть исходный файл Java, сохраненный в строковую переменную, вот так.
String contents = Utils.getTextFromFile(new File(fileName));
И, скажем, в исходном файле есть строка текста, например,
String x = "Hello World\n";
Обратите внимание на символ новой строки в конце.
В моем коде я знаю о существовании Hello World
, но не Hello World\n
поэтому, следовательно, вызов
String search = "Hello World";
contents = contents.replaceAll(search, "Something Else");
потерпит неудачу из-за этого символа новой строки. Как я могу сделать так, чтобы он совпадал в случае одного или нескольких символов новой строки? Может ли это быть регулярное выражение, которое я добавляю в конец переменной search
?
EDIT:
Я заменяю строковые литералы переменными. Я знаю литералы, но я не знаю, есть ли у них символ новой строки или нет. Вот пример кода перед моей заменой. Для замены я знаю, что application running at a time.
существует, но не application running at a time.\n\n
int option = JOptionPane.showConfirmDialog(null,"There is another application running. There can only be one application\n" +
"application running at a time.\n\n" +
"Press OK to close the other application\n" +
"Press Cancel to close this application",
"Multiple Instances of weh detected",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.ERROR_MESSAGE);
А вот пример после моей замены
int option = JOptionPane.showConfirmDialog(null,"There is another application running. There can only be one application\n" +
"application running at a time.\n\n" +
"Press OK to close the other application\n" +
"PRESS_CANCEL_TO_CLOSE",
"MULTIPLE_INSTANCES_OF",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.ERROR_MESSAGE);
Обратите внимание, что все литералы без перевода строки заменяются, например, "Multiple Instances of weh Detected"
теперь "MULTIPLE_INSTANCES_OF"
, но все с новыми строками - нет. Я думаю, что есть какое-то регулярное выражение, которое я могу добавить для обработки одного или нескольких символов новой строки, когда оно пытается заменить все.