RegEx для сопоставления символа в строке, только если он не экранирован - PullRequest
2 голосов
/ 30 апреля 2019

Как я могу найти и обработать символ в строке, только если он не экранирован (то есть обработан нечетным числом другого символа)?

Пример:

Желаемый символ: |

Escape-символ: \

| должен быть найден (и оперирован, например, разделенным)

\| должен не

\\| должен

\\\| должен не

1 Ответ

4 голосов
/ 30 апреля 2019

Используйте отрицательный вид сзади, чтобы определить границу:

(?<!\\)(?:\\\\)*\|

Смотрите демо здесь

Принимая во внимание обратную косую черту в Java, приведенное выше регулярное выражение будет:

(?<!\\\\)(?:\\\\\\\\)*\\|
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...