Хорошо, у меня есть многострочная строка. Я пытаюсь выполнить некоторую очистку.Regex заменяет, но только между двумя шаблонами
Каждая строка может быть или не быть частью большого блока цитируемого текста. Пример:
This line is not quoted.
This part of the line is not quoted “but this is.”
This one is not quoted either.
“This entire line is quoted”
Not quoted.
“This line is quoted
and so is this one
and so is this one.”
This is not quoted “but this is
and so is this.”
мне нужна замена RegEx, который не-обернуть жесткие обернутый процитированные строки, то есть, заменить «\ г \ п» с пространством, но только между фигурными кавычками.
Вот как это должно выглядеть после замены: (. Обратите внимание, как последние две строки были несколько строк во входном тексте)
This line is not quoted.
This part of the line is not quoted “but this is.”
This one is not quoted either.
“This entire line is quoted”
Not quoted.
“This line is quoted and so is this one and so is this one.”
This is not quoted “but this is and so is this.”
Ограничения
- В идеале нужно один вызов замены Regex
- Использование библиотеки .NET RegEx
- Котировки всегда начало/конец фигурные кавычки, а не простые двойные метки ("), что должно сделать это немного проще.
Важно Constraint
Это не прямой код .NET, я заселение таблицы "SearchFor/ReplaceWith" строки, которые затем вызываемые через RegEx.Replace. Я не имею возможность добавлять пользовательский код, как Match Оценщики, циклически захваченных групп и т.д.
Текущий ответ до сих пор, что-то вдоль линий:
r.Replace("(?<=“)\r\n(?=”)", " ")
Очевидно, что я не даже близко еще.
Та же логика может быть применена, скажем, к цветному кодированию комментариев блока в коде программирования - что-либо внутри комментария блока не обрабатывается так же, как материал вне комментариев. (Код немного сложнее, поскольку разделители комментариев в конце и конце строки могут также законно существовать в литеральной строке, проблема, с которой мне здесь не приходится иметь дело.)
Можете ли вы указать причину ограничений, особенно первых двух? – MarkusQ
Добавлено ... это не настраиваемый код, это общий инструмент разбора/очистки, который я написал, который управляется таблицей из базы данных. Не существует простого способа написать одноразовый код для этой конкретной проблемы. – richardtallent