У меня есть пользовательская строка, которую мне нужно превратить в регулярное выражение, где их строка обрабатывается как литерал, а затем я добавляю предварительно написанное регулярное выражение в конце.
По существу,способ сказать «то, что предоставил пользователь, с последующим этим шаблоном».
Это заставляет меня думать, что мне может потребоваться очистить строку, предоставленную пользователем, чтобы избежать метасимволов.
Например, это то, что я пытался
\\ Replace "\" with "\\"<br>
String rE = userText.replaceAll("\\", "\\\\");<br>
\\ Replace . with \.<br>
rE = rE.replaceAll(".", "\\.");
Однако это не так со следующим сообщением при сопоставлении \ escaping
Execution aborted because of unhandled exception:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^ at java.util.regex.Pattern.error(Pattern.java:1725)
at java.util.regex.Pattern.compile(Pattern.java:1478)
Есть ли более простой способсделай это?Я подозреваю, что есть встроенный метод для превращения потенциальных regEx в литералы, но я не могу его найти.
Я просматривал подобные вопросы, но, похоже, никто не хочет рассматривать входную строку пользователя какбуквальный.