Java.util.regex.pattern , java.util.pattern.matcher есть какой -то режим "Vorbatim"?
Я использую его для поиска текста. Тем не менее, пользователь может напечатать что -то вроде обратной черты (\). Как есть, это заставляет мою программу сбой. < /P>
Все токены должны интерпретироваться буквально. Конечно, я не хочу вручную избегать всего.import org.junit.jupiter.api.Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
class GenericTest {
@Test
void someTest() {
Pattern pattern = Pattern.compile("\\"); // throws here
Matcher matcher = pattern.matcher("\\");
boolean hasMatch = matcher.find();
assertTrue(hasMatch);
assertEquals("\\", matcher.group());
}
}
< /code>
Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
at java.util.regex.Pattern.error(Pattern.java:1969)
at java.util.regex.Pattern.compile(Pattern.java:1708)
at java.util.regex.Pattern.(Pattern.java:1352)
at java.util.regex.Pattern.compile(Pattern.java:1054)
Подробнее здесь: https://stackoverflow.com/questions/796 ... x-matching