Вот возникла такая задача: надо написать регулярное выражение для замены в заданной строке слов: "слово1", "слово2", "слово3" на "слово2", "слово3", "слово4" соответсвенно. В чём хитрость?
Например вариант:
$str=~s/слово1/слово2/g;
$str=~s/слово2/слово3/g;
$str=~s/слово3/слово4/g;
не пододит, т.к. из строки "слово1 слово2 слово3" он сделает "слово3 слово3 слово4", а должен "слово2 слово3 слово4".
То есть нужно сделать как-то, чтобы регулярное выражение, найдя один из образцов, заменило его и повторно уже эта часть строки не подвергалась обработке. Конечно, можно сделать цикл, но хотелось бы как-то написать это одним регулярным выражением. Что-то типа:
$str=~s/слово1|слово2|слово3/слово2|слово3|слово4/g;
Последний вариант синтаксически неверен к сожалению.