Извлечение цитат из транскрипта фильма / ТВ в Notepad ++


1

У меня есть стенограмма 3-часового документального фильма, который заполнен цитатами, которыми я хотел бы поделиться. Расшифровка стенограммы огромна, поэтому ее прохождение вручную займет вечность.

В общем, я просто хочу удалить весь текст из стенограммы, кроме текста, найденного между кавычками: удалить «сохранить» удалить.

Я уверен, что вы можете сделать это в Notepad ++, я просто не знаю как. Может кто-нибудь помочь, пожалуйста!

Ответы:


5

Это решение этой проблемы заключается в использовании RegEx , инструмента, который сопоставляет части текста с заданным набором правил. Ваши правила довольно просты - ловите все между двумя кавычками. Я не лучший в Regex, но я нашел решение, которое, кажется, соответствует тому, что вы ищете.

Я рекомендую использовать редактор Sublime для этого - во-первых, я не мог заставить его работать с легкостью в N ++, а во-вторых, Sublime действительно потрясающий!

Вот как извлечь ваши цитаты.

  1. Откройте файл, из которого вы хотите извлечь в Sublime.
  2. Нажмите, ctrl+fчтобы открыть инструмент поиска в нижней части экрана.
  3. Нажмите кнопку слева от инструмента поиска с .*символами. Это включает соответствие RegEx.
  4. В строке поиска введите: "[^"]+"
  5. В правом углу инструмента поиска нажмите Find All
  6. Нажмите, ctrl+cчтобы скопировать все выборы.
  7. Откройте новый файл и нажмите, ctrl+vчтобы вставить весь выделенный текст.

RegEx Объяснение

Я разобью выражение на несколько частей.

"- Это начинается сопоставление текста, начиная с двойной кавычки.
[^"]- Это соответствует всему тексту, который не включает в себя еще одну двойную кавычку - это важно, потому что, если мы сопоставим кавычки, мы начнем сопоставлять все в файле после первой кавычки! Не то, что мы хотим. ^Символ является отрицанием символ в RegEx - это указывает на то, чтобы не соответствовать тому , что происходит дальше.
+"- Вынуждает нас соответствовать только тексту, который в итоге заканчивается другой двойной кавычкой. Это предотвращает сопоставление, скажем, последней цитаты в документе с концом документа, и завершает все начавшиеся ранее совпадения, не перетекая в то, что мы не хотим сопоставлять.

Я думаю, что есть более красивые способы сделать это, но я также ожидаю, что это покрывает то, что вам нужно. Если у вас есть какие-либо проблемы с этим, дайте мне знать!

Да, и в заключение, одна из причин, почему я рекомендовал Sublime, заключается в том, что он поддерживает несколько курсоров, что позволяет легко выбирать разные части текста одновременно. Попробуйте открыть документ и ctrl+middle clickввести его в нескольких местах, а затем начать печатать.

редактировать

Ха-ха, я совершенно забыл заглянуть в самое заметное место в Notepad ++ - инструмент поиска - для встроенного RegEx. Вы можете сделать это примерно так же, но не было хорошего способа выделить весь текст. Простейшей вещью было нажать «Найти все в текущем документе», а затем выделить весь текст, сгенерированный в окне «Поиск» внизу. Но это не так красиво, как это делает Sublime.


Вопрос кажется решенным, но что бы вы сделали, если бы цитата была прервана переводом строки?
Кард Нейлс

@KardNails Я не думаю, что разрыв строки повлияет на это - я провел некоторое тестирование, и, похоже, это не так. Символ новой строки есть \n, и это соответствует во время отрицания кавычки.
Девон Парсонс

Интересно. Можете ли вы объяснить, почему это ".*?"только поиск совпадающих символов в одной строке, если я не добавлю \s?
Kard Nails

@KardNails Я не уверен в этом. \sРазделитель соответствует все пробелы включая пробелы и табуляции, так что, скорее всего , соответствует большинству котировок в вопросе ФП в. При этом, это все еще учитывается в RegEx, который я разместил выше. Я не смог воссоздать цитату с новыми строками, которые не соответствовали моему RegEx. Какое точное выражение вы используете?
Девон Парсонс

Ничего конкретного. Я просто пытался понять, почему использование .*?будет искать только в каждой отдельной строке. Не .должно соответствовать ни одному персонажу? Разве это не включает пробелы, табуляции и разрывы строк?
Кард Нейлс

0

Попробуй это :

  1. Ctrl + H
  2. Найти что: ^ (\ l +)
  3. Заменить на: (пусто)
  4. Заменить все

введите описание изображения здесь


Что должен делать это регулярное выражение?
Kard Nails
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.