Доброе утро!
Пожалуйста, подскажите, как мне удалить из строки все небуквенно-числовые символы, но при этом оставить смайлики.
Например, юзер ввел строку:
Привет!!! :)
так вот в итоге я должна получить строку
Привет :)
Regex для того,чтобы найти, а затем удалить небуквенно-числовые символы:
/[^a-zA-ZА-Яа-я0-9\s*]/iu
как в него добавить исключение вроде
если есть последовательность символов ":)" , то ее не трогать.
Также смайлики могут быть вбиты через пробелы.
Например, ": )" вместо ":)" или ": P" вместо ":P".
Если кто-то знает, как написать такое регулярное выражение - буду рада помощи!
1. sun1_sun2_sun3 - 13 Августа, 2015 - 10:40:23 - перейти к сообщению
2. Panoptik - 13 Августа, 2015 - 11:49:07 - перейти к сообщению
а чем привет!!! хуже чем првиет без знаков?
нужно понять насколько много смайликов есть и обработать их в виде исключеия. так как в смайликах могут использоваться очень даже не алавитно-цифровые символы
без этого смысла писать регулярку нет, потому что она потрет половину смайлов
3. andrewkard - 13 Августа, 2015 - 12:01:06 - перейти к сообщению
Можно так:
/[А-Яа-я\s\:\)]{1,}/
/[А-Яа-я\s\:\)]{1,}/
4. sun1_sun2_sun3 - 13 Августа, 2015 - 12:18:22 - перейти к сообщению
> а чем привет!!! хуже чем привет без знаков?
Это я так для наглядности взяла пример)
> нужно понять насколько много смайликов есть и обработать их в виде исключеия. так как в смайликах могут использоваться очень даже не алавитно-цифровые символы
> без этого смысла писать регулярку нет, потому что она потрет половину смайлов
Я думаю обрабатывать только самые распространенные смайлики (не больше 20).
для начала :) и :(.
я не могу додуматься как их в регулярку засунуть
> Можно так:
/[А-Яа-я\s\:\)]{1,}/
эта регулярка не подойдет, так как часть выделенная жирным
/[А-Яа-я\s\:\)]{1,}/
будет искать отдельные символы :, ).
А мне нужно, именно, последовательность символов :)
(также необходимо учесть что смайлик может быть введен с пробелами).
P.S. Спасибо большое за помощь
Это я так для наглядности взяла пример)
> нужно понять насколько много смайликов есть и обработать их в виде исключеия. так как в смайликах могут использоваться очень даже не алавитно-цифровые символы
> без этого смысла писать регулярку нет, потому что она потрет половину смайлов
Я думаю обрабатывать только самые распространенные смайлики (не больше 20).
для начала :) и :(.
я не могу додуматься как их в регулярку засунуть
> Можно так:
/[А-Яа-я\s\:\)]{1,}/
эта регулярка не подойдет, так как часть выделенная жирным
/[А-Яа-я\s\:\)]{1,}/
будет искать отдельные символы :, ).
А мне нужно, именно, последовательность символов :)
(также необходимо учесть что смайлик может быть введен с пробелами).
P.S. Спасибо большое за помощь
5. andrewkard - 13 Августа, 2015 - 12:41:46 - перейти к сообщению
Тогда может как то так:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $str = 'Привет!!! :)';
- $pattern = '/[^a-zA-ZА-Яа-я0-9\s\:\)*]/iu';
- $str_test = $str_clear;
- foreach($arr_smile as $smile){
- }
- echo "Error";
- } else {
- echo $str_clear;
- }