Что regex должен соответствовать чему-нибудь кроме двойной кавычки, которой не предшествует обратная косая черта?

Я был счастлив в своем textpad и ecplise мире, пока я не должен был начинать работать с серверами, работающими в соответствии с Linux. Удаленные сценарии и настроенный файлов конфигурации были необходимы!

Это было твердо в начале, но теперь я могу легко настроить и настроить свои серверы.

17
задан Alan Moore 30 August 2009 в 00:33
поделиться

2 ответа

Нет необходимости в поиске назад:

"([^"]|\\")*"

Итак: сопоставьте кавычки, а внутри них: каждый символ, кроме кавычек ( [^ "] ) или экранированная цитата ( \\ "), произвольно много раз ( * ).

35
ответ дан 30 November 2019 в 11:37
поделиться

"Не предшествует" переводится непосредственно в "отрицательный взгляд назад", поэтому вам нужно (? .

Хотя вот вопрос это может испортить вам день: а как насчет строки «foo \\» ? То есть двойных кавычек, которым предшествуют две обратные косые черты, где в большинстве экранирующих синтаксисов мы хотели бы отрицать особое значение вторую обратную косую черту, поставив перед ней первую.

Именно поэтому регулярные выражения не заменяют синтаксические анализаторы.

3
ответ дан 30 November 2019 в 11:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: