gcc писал(а): ↑27.05.2009 04:32
тут не поулчается, оно сносит первую цифры! не знаю почему на perl пишу
сносит... потому что звёздочка жадная, и есть ещё варианты. попробуйте не жадную .*? (такого в sed нету)
gcc писал(а): ↑27.05.2009 04:32
желательно на perl написать
не буду. потому что во первых я не Фридл, а во вторых уже напиано
Фридл Дж. - Регулярные выражения.
купите эту книжку, не пожалеете!
gcc писал(а): ↑27.05.2009 04:32
(.*) или (.\*) если так написать, то не работает второй вариант вообще! а первый как был так и есть игнорирует строку там где звездочка
а точка это что? тут надо ман курить... это любой символ, но не вообще любой, а любой
допустимый.есть и недопустимые, это и от ос и от локали зависит... может у вас там что-то перед звёздочкой? а может есть ещё звёздочка?
попробуйте захватить не любой символ сколько угодно раз, а только допустимые, например если в дате только [-0-9], их и захватывайте, причём пустой даты не бывает, потому [-0-9]+, а звёздочку можете захватить отдельно, например [-0-9]+\*
gcc писал(а): ↑27.05.2009 11:15
1) а звездочку как обойти? оно просто пропускает эту строку если там попадается звездочка!
2) в другом месте везде, оно захватыает и срезает одну цифру тут .*([\d+]): до двоеточия 2 цифры, а оно одну удаляет после звездочки в регулярке...
ну и не используйте здесь .*