Показать сообщение отдельно
  #1 (permalink)  
Старый 18.12.2017, 19:32
Интересующийся
Отправить личное сообщение для rsaburov Посмотреть профиль Найти все сообщения от rsaburov
 
Регистрация: 06.01.2014
Сообщений: 24

Удалить все строки не содержащие ключевой символ
Есть работающий скрипт для поиска и замены строк.
Однако при использовании регулярного выражения
^[^@]+\n
выявляющего строки не содержащие символ @
этот скрипт перестает работать в форме *.js и непредсказуемо работает внутри html
var fso = new ActiveXObject("Scripting.FileSystemObject");
  var list = fso.OpenTextFile("D:\\list.txt", 1, true);           
  var rest = /^[^@]+\n/g;
  while (!list.AtEndOfStream) {
    var file = list.ReadLine();
    var myInputTextStream = fso.OpenTextFile(file, 1, true);
    var myOutputTextStream = fso.OpenTextFile(
      file.slice(0,-4) + "0.txt"
    , 2, true);
    myOutputTextStream.Write(
      myInputTextStream
        .ReadAll()
        .replace(rest, "")
    )
    myInputTextStream.Close();
    myOutputTextStream.Close();
  }
  list.Close();

Здесь list.txt содержит список обрабатываемых файлов.
При этом регулярка работает в Notepad++ и в EmEditor
Та же ситуация с регулярным выражением
^(?!.*@).*$
для тех же целей
Оба выражения можно переориентировать с поиска строк не содержащих собаку на то же самое с решеткой, долларом и др.спецсимволами.
Как заставить их заработать и в чем причина?
Ответить с цитированием