Я маю вираз regex, що зберігається в БД - "\\E\\"
, Я використовую java, щоб витягнути його і зрівняти з Strings.
Я думав, що, оскільки java читає з БД, вона знає, що вона може уникати спеціальних символів SQL, і все, що мені потрібно, це уникнути спеціальних хактерів regex, так що цей вираз насправді відповідає "\E\"
.
Проблема в тому, що вона macthes "E"
швидше за все "\E\"
, чому?
Відповіді:
2 для відповіді № 1Якщо ви хочете використовувати регулярний вираз для відповідності одному літеральному символу зворотної коси рисок, вам потрібно використовувати чотири зворотні коси риски в рядку Java.
- Регістр
\
відповідає одному літеральному зворотному слешу. - Рядок
"\"
позначає єдиний зворотний слеш. - Тому для того, щоб побудувати регулярний вираз, що складається з двох зворотних скіс, вам знадобиться рядок Java з чотирма зворотними рисами.
Отже, вам потрібно "\\\\E\\\\"
створити регулярний вираз, який відповідає \E\
...