Регулярное выражение, чтобы найти строку, содержащую определенные символы и удалить ту строку

Следующий код, кажется, работает.

В html я заменяю это:

xhr.onload = function() {
    window.location.replace("http://MyPage.php");
};

на это:

xhr.onload = function() {
    if (xhr.readyState == 4 && xhr.status==200) {
        window.location.replace(xhr.responseText);
    }
};

И в signin.php

if ($Test==true) {
  echo "http://www.example.com/TheGoodPage.html";
}
else {
  echo "http://www.example.com/TheUnAuthorizedPage.html";
}    
5
задан Triptych 4 February 2009 в 13:22
поделиться

7 ответов

sed -i -e '/^::/d' yourfile.txt
2
ответ дан 13 December 2019 в 19:37
поделиться

Регулярные выражения ничего не "делают". Они только соответствуют тексту.

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

Такие инструменты sed (существует также awk и многие другие). Вы использовали бы его как это:

sed -e "/^::/d" < input.txt > output.txt

Часть"/^::/"говорит sed для применения следующей команды ко всем строкам, которые запускаются с "::" и"d"просто означает, "удаляют ту строку".

Или простое решение (который мой мозг не произвел по некоторой странной причине):

grep -v "^::" input.txt > output.txt
8
ответ дан 13 December 2019 в 19:37
поделиться
^::.*[\r\n]*

При чтении файла линию за линией, Вам не будет нужно [\r\n]* часть.

1
ответ дан 13 December 2019 в 19:37
поделиться

Если у Вас нет sed или grep, найдите это и замену пустой строкой:

^::.*[\r\n]
0
ответ дан 13 December 2019 в 19:37
поделиться

Вот мой вклад в C#:

Текстовый поток:

string stream = :: This is a comment line

Синтаксис:

Regex commentsExp = new Regex("^::.*", RegexOptions.Singleline);

Использование:

Console.WriteLine(commentsExp.Replace(stream, string.Empty));

С другой стороны, если я хотел просто взять текстовый файл, который включал комментарии, и произведите точный дубликат без строк комментария, я мог использовать простую, но эффективную комбинацию типа и findstr инструментов командной строки:

type commented.txt | findstr /v /R "^::" > uncommented.txt
0
ответ дан 13 December 2019 в 19:37
поделиться

Спасибо за указатели:

Следующая вещь работала на меня. После "::" любой символ возможно присутствовал в текстовом файле, таким образом, я дал:

^:: [a-zA-Z0-9 я поместил все символы пунктуации здесь] * $

- AD

0
ответ дан 13 December 2019 в 19:37
поделиться

Простой как:

^::
0
ответ дан 13 December 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: