Sourav Ghosh1989 Ответов: 2

Замена строки частичным совпадением


Я хочу заменить совпадение строк
Цитата:
Я могу засечь МКС в 20 часов.
с пустым или удалить строку.
У меня есть текстовый файл, Пример содержания которого выглядит следующим образом.

Я могу засечь МКС в 0800 часов.
Случайная строка....
Случайная строка....
Случайная строка....
Случайная строка....
Я могу засечь МКС в 09.00.
Случайная строка....

Я могу засечь МКС в 2000 часов.
Случайная строка....
Случайная строка....
Случайная строка....

Что я уже пробовал:

Лучший способ решить эту проблему-использовать регулярное выражение, но поскольку я нуб в регулярном выражении, я использую комбинацию из 2 строк замены.
1. Замените линию
I can spot the ISS at 

2. Замените линию
0800 Hrs. / 0900 Hrs. / ...

Проблема с подходом заключается в том, что это просто очень плохой способ.

2 Ответов

Рейтинг:
2

Richard MacCutchan

Прочитать файл в string[] Создайте новый файл, содержащий обновленный текст. Теперь для каждой строки проверьте, начинается ли она с "I can spot the ISS at": если да, то игнорируйте ее, если нет, то запишите в выходной файл.


Sourav Ghosh1989

Он съедает процессор в случае большого текстового файла.

Richard MacCutchan

Ну, на мой взгляд, вы делаете много обработки процессора и не так много ввода-вывода.

Рейтинг:
0

Patrice T

это будет соответствовать строкам в регулярном выражении, но вы не сказали правила замены:

I can spot the ISS at \d{4} Hrs\.

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]


Sourav Ghosh1989

$re = '/I can spot the ISS at \d{4} Hrs\./m';
$str = 'я могу обнаружить МКС в 0800 часов.
Случайная строка....
Случайная строка....
Случайная строка....
Случайная строка....
Я могу засечь МКС в 09.00.
Случайная строка....

Я могу засечь МКС в 2000 часов.
Случайная строка....
Случайная строка....
Случайная строка....';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

Спасибо за помощь. :)