The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Rerl удалиния метасимволов из строки"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Rerl удалиния метасимволов из строки"  
Сообщение от Valik email on 26-Фев-07, 07:40 
Как в строке оставить только алфавитно-цифровые символы?
$test =~s/([\w+])//g;  получаю метасимволы как теперь удалить из строки ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Rerl удалиния метасимволов из строки"  
Сообщение от XAnder (ok) on 26-Фев-07, 08:42 
>Как в строке оставить только алфавитно-цифровые символы?
>$test =~s/([\w+])//g;  получаю метасимволы как теперь удалить из строки ?

s/([\w+])//g == "убрать все алфавитно-цифровые символы и плюсы"

может быть, поступить просто так: s/\W//g

или даже так: s/\W+//g ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Rerl удалиния метасимволов из строки"  
Сообщение от Valik email on 26-Фев-07, 10:32 
>>Как в строке оставить только алфавитно-цифровые символы?
>>$test =~s/([\w+])//g;  получаю метасимволы как теперь удалить из строки ?
>
>s/([\w+])//g == "убрать все алфавитно-цифровые символы и плюсы"
>
>может быть, поступить просто так: s/\W//g
>
>или даже так: s/\W+//g ?


мне надо сделать с точности до наоборот оставить только алфавитно-цифровые

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Rerl удалиния метасимволов из строки"  
Сообщение от XAnder (ok) on 26-Фев-07, 10:45 
>мне надо сделать с точности до наоборот оставить только алфавитно-цифровые

% perl -e '$test="qW%|eR_34 aS+DF5"; $test =~ s/\W+//g; print "$test\n";'
qWeR_34aSDF5
%

По-моему, именно это и происходит. В переменной $test, остаются только буквы, цифры и подчеркивания. Или я не правильно понял вопрос.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Rerl удалиния метасимволов из строки"  
Сообщение от Valik email on 27-Фев-07, 08:07 
>>мне надо сделать с точности до наоборот оставить только алфавитно-цифровые
>
>% perl -e '$test="qW%|eR_34 aS+DF5"; $test =~ s/\W+//g; print "$test\n";'
>qWeR_34aSDF5
>%
>
>По-моему, именно это и происходит. В переменной $test, остаются только буквы, цифры
>и подчеркивания. Или я не правильно понял вопрос.

Получилось только вот как быть с русскими буквами. Они тоже удаляются.
use locale;
use POSIX qw(locale_h);
setlocale(LC_CTYPE, "ru_RU.UTF8");

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Rerl удалиния метасимволов из строки"  
Сообщение от XAnder (ok) on 27-Фев-07, 08:39 
>Получилось только вот как быть с русскими буквами. Они тоже удаляются.
>use locale;
>use POSIX qw(locale_h);
>setlocale(LC_CTYPE, "ru_RU.UTF8");

Valik! В самом деле! Изучай регулярные выражения, и сразу же вопросов станет меньше. Да, времени потратишь немало, но это окупится с лихвой.

man perlre
man perlrequick
man perlretut

а также ворох книг и статей, посвященных regexp'ам.

s/[^0-9A-Za-z_]+//g - так, наверное?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Rerl удалиния метасимволов из строки"  
Сообщение от A on 09-Мрт-07, 10:31 
tr работает гараздо быстрее, чем s
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру