История изменений
Исправление runtime, (текущая версия) :
через некоторое время простые регулярки становятся сложными, сложные еще сложнее и запутанее и уже весь этот трехэтажный набор закорючек и глючит и с трудом расшифровывается даже самим собой уже через несколько дней
Всё сильно зависит от языка, в котором ты с регулярками работаешь. Тот же Perl позволяет использовать модификатор x
(разбиваем регулярки на несколько строк) и интерполяцию строк в регулярках, что вместе очень сильно упрощает работу и повышает читабельность.
Да, это всё равно не решает проблему полностью, но очень сильно расширяет границы, в которых регулярки можно применять.
my $whitespace = '\s+';
my $string = '\S+';
foreach (`who`) {
/
(?<user> $string) $whitespace
(?<tty> $string) $whitespace
(?<date> $string)
/x;
say "$+{user} : $+{tty} : $+{date}"
}
Более того, не забывай, что встречается много разовых задач, которые нужно сделать «здесь и сейчас», например: клиент прислал CSV, из которого нужно взять 3 колонки, немного преобразовать и сгенерировать SQL скрипт для INSERT’а данных. Делается это один раз, после чего твой скрипт и CSV файл выкидываются. В таких задачах RegEx’ы бывают незаменимы.
Исходная версия runtime, :
через некоторое время простые регулярки становятся сложными, сложные еще сложнее и запутанее и уже весь этот трехэтажный набор закорючек и глючит и с трудом расшифровывается даже самим собой уже через несколько дней
Всё сильно зависит от языка, в котором ты с регулярками работаешь. Тот же Perl позволяет использовать модификатор x
(разбиваем регулярки на несколько строк) и интерполяцию строк в регулярках, что вместе очень сильно упрощает работу и повышает читабельность.
Да, это всё равно не решает проблему полностью, но очень сильно расширяет границы, в которых регулярки можно применять.
my $whitespace = '\s+';
my $string = '\S+';
foreach (`who`) {
/
(?<user> $string) $whitespace
(?<tty> $string) $whitespace
(?<time> $string)
/x;
say "$+{user} : $+{tty} : $+{time}"
}
Более того, не забывай, что встречается много разовых задач, которые нужно сделать «здесь и сейчас», например: клиент прислал CSV, из которого нужно взять 3 колонки, немного преобразовать и сгенерировать SQL скрипт для INSERT’а данных. Делается это один раз, после чего твой скрипт и CSV файл выкидываются. В таких задачах RegEx’ы бывают незаменимы.