Строка RegEx для поиска двух строк и удаления остального текста в файле - PullRequest
1 голос
/ 18 июня 2020

Мне нужно найти и удалить остальное в текстовом файле с помощью блокнота +++. Я хочу, чтобы вы использовали RegeX для поиска вариантов thban ..... переменная всегда имеет максимум 5 символов позади нее (см. Точки). с моей строкой поиска он попал в последнюю строку, но всю строку. Я просто хочу сохранить это слово. Когда это сработает, я также хочу сохранить слова, содержащие C3 ..... Остальную часть текстового файла можно удалить. Он также должен быть нечувствительным к заглавным буквам

(?!thban\w+).*\r?\n?

\

THBANES900 and C3950 bla bla
THBAN
..THBANES901.. C3850 bla bla
THBANMP900
**..thbanes900..**

Это должно привести к

THBANES900 C3950
THBAN
THBANES901 C3850
THBANMP900
thbanes900

Ответы [ 2 ]

4 голосов
/ 18 июня 2020

Может быть, просто уловить эти слова интереса вместо того, чтобы заменять все остальное? В Notepad ++ найдите шаблон:

^.*\b(thban\S{0,5})(?:.*(\sC3\w+))?.*$|.+

См. онлайн-демонстрацию

  • ^ - начало строки ancor.
  • .*\b - Любой символ, кроме символа новой строки, ноль или более раз до границы слова.
  • ( - Открыть 1-ю группу захвата.
    • thban\S{0,5} - сопоставить thban и ноль или 5 символов без пробелов.
    • ) - закрыть 1-ю группу захвата.
  • (?: - Открыть группу без захвата.
    • .* - Любой символ, кроме символа новой строки, ноль или более раз.
    • ( - Открыть вторую группу захвата.
      • \sC3\w+ - Пробельный символ, соответствует "C3" и один или несколько символов слова.
      • ) - Закрыть вторую группу захвата.
    • )? - закрыть группу без захвата и сделать ее необязательной.
  • .* - любой символ, кроме символа новой строки, ноль или более раз.
  • $ - Конечная строка ancor.
  • | - Чередование (ИЛИ).
  • .+ - Любой символ, кроме новой строки один или несколько раз.

Заменить с:

$1$2

После этого у вас может остаться пустая строка, которую вы можете удалить с помощью встроенной опции. Я не знаю терминов engli sh, поэтому я сделал GIF, чтобы показать вам, где найти эти кнопки:

enter image description here

Я не Убедитесь, что английская sh контрольная кнопка предназначена для игнорирования регистра. Но убедитесь, что этот флажок не установлен.

1 голос
/ 19 июня 2020

Вы можете использовать

Find What : (?|\b(thban\S{0,5})|\s(C3\w+))|(?s:.) Заменить на : (?1$1\n:)

Снимок экрана и настройки

enter image description here

Подробности

  • (?| - начало группы сброса ветки:
    • \b(thban\S{0,5}) - Группа 1: граница слова, затем thban и любые от 0 до 5 символов без пробелов
    • | - или
    • \s(C3\w+) - пробельный символ, а затем Группа 1: C3 и один или несколько символов слова
  • ) - конец группы сброса ветвления
  • | - или
  • (?s:.) - любой один символ (включая символы разрыва строки)

Замена:

  • (?1 - при совпадении группы 1
    • $1\n - значение группы 1 с новой строкой
    • : - иначе заменить пустой строкой
  • ) - конец шаблона условной замены
...