Oki
Продвинутый
- Сообщения
- 452
- Репутация
- 63
Для сабжа на данный момент написан такой скрипт.
Не имею достаточного опыта в регулярных выражениях, чтобы получить уверенность в том, когда скрипт начнёт правильно обрабатывать любые ситуации по сабжу. Даже сейчас вижу, что второй шаг применения регулярных выражений не приводит к полному удалению строки, но не удивлюсь наличию других неточностей в этом скрипте. Прошу взглянуть опытных пользователей регулярных выражений и оценить скрипт и/или предложить к нему правки.
Последовательность действий скрипта следующая:
Код:
$s = FileRead(@ScriptDir & "\1.txt")
$s = StringRegExpReplace($s, "/\*(?s).*?\*/", "") ; To delete comments of the type "/*[anything]*/".
$s = StringRegExpReplace($s, "(?m)^//.*?$", "") ; To delete lines of the type "//[anything]".
$s = StringRegExpReplace($s, "//.*?((?m)$)", "\0") ; To delete right parts of lines, starting from "//[anything]".
FileWrite(@ScriptDir & "\2.txt", $s)
Последовательность действий скрипта следующая:
- сначала удаляются комментарии, начинающиеся символами "/*" и заканчивающиеся символами "*/";
- затем полностью удаляются строки, начинающиеся символами "//" (этого, к сожалению, не удалось достигнуть полностью: пустые строки остаются на месте удаляемых);
- и наконец, удаляются части строк, начинающиеся символами "//".