У меня есть какой-то плохо отформатированный текст, который я пытаюсь переформатировать, используя функцию поиска / замены OpenOffice.org Writer, которая поддерживает регулярные выражения, как определено здесь.

Проблема в том, что некоторые параграфы были разделены на два параграфа в середине предложения. Например (используя ^ для обозначения начала и $ для обозначения конца абзаца):

^ Это хороший абзац.$

^ Он сказал: «Это хороший абзац».

^ Но эти $

^ два сломанных, которые должны быть объединены в один.$

Я надеялся создать регулярное выражение, чтобы найти любые абзацы, которые не заканчиваются на . или " и объединить его со следующим абзацем (заменив конец абзаца пробелом, а затем я проверю наличие двойных пробелов).

Выполнение поиска для поискового запроса $ находит (и выбирает) конец каждого абзаца, чтобы его можно было заменить. Однако [^\.]$ Находит каждый абзац, который не заканчивается на . но выбирает последний символ, а не конец абзаца, поэтому я не могу его заменить.

Есть идеи?

1 ответ1

0

Вот что ты хочешь. Негативный взгляд сзади:

(?<!\.|")$\n

Тем не менее, я не знаю, поддерживает ли OO Writers отрицательные взгляды, так что вместо этого вы можете заменить захваченную группу.

Find:     ([^."])$\n
Replace:  $1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .