Forum Webscript.Ru
Программирование => Perl => Тема начата: AlterMann[RCK] от 17 Декабря 2002, 15:20:20
-
Товарищи!!!
Подскажите, плиззз!
Как поставить ограничение в регуляром выражении... ну, чтобы он выдерал до опеределённого символа?
ну например...
строка
http://www.ru/#Название
и нада, чтобы выдералосля урл до # и писался в $1, а название в $2...
Очень нада и как можно скорее!
-
$s = "http://www.ru/#Название";
$s =~ m!^[url]http://[/url]([^/]+)/(.+)$!;
-
ну а если например... вот так...
$val=~s/(http:\\/\\/\\S+\\#)/INSERT INTO links VALUES \\(\'$2\',\'$1\'\\);/g;
или как по другому??
короче нада, чтобы получилось вот так:
INSERT INTO nuke_links_links VALUES (\'Название\',\'http://www.ru\');
а получается...
INSERT INTO nuke_links_links VALUES (\'\',\'http://www.ru#\');
-
$s =~ m!^http://([^/]+)/(.+)$!;
хотя это конечно прокатывает... но только он обрубает всё, что после .ru ...
вот такая засада получается...
INSERT INTO links VALUES (\'cgi-bin/category?ca_id=49#@ Port.ru - ОТКРЫТКИ - Выбор открытки\',\'ot.port.ru\');
и http:// тоже нужно... :-)
Короче, делаю вывод что нужно...
Не нужно ставить ограничение на / ... нада ставить чтобы брало с http:// (включая и его) и до # .... при этом решётку обрубая...
Но чё-то у меня не получается... :-)
Вернее я уже почти всё сделал, но http:// всё равно обрубается... :-)
В общем наваялся следующее регулярное выражение:
$val=~s/http:\\/\\/([^#]+)#(.+)$!/и тута ... то самое... с $1 и $2/
-
ВСЁ, спасибо всем! я нашёл способ обойти... ;-)