Есть задача заменить определнный тэги на графичиские смайлы.
Вроде проблем не возникло кроме одной.
Как правильно записать вырожение.
допустим есть два смайла ":)" и ":("
мне нужно как то записать
что я ищу все слова вида ":)" и ":(" с произвольным количеством whitespace characters вначале и в конце.
сейчас вот так ":)|:(" что реагирует, например, на "abc:)af" что мне не нужно.
если что то типа вот так "[ \t\r\n\v\f]*:)", то оно всегда ждет whitespace characters, а мне нужно либо точное вхождение ":)" либо с указанными символами до и после. Есть ли возможность это указать?
спасибо.
Просьба модератору не переносить топик, так как срочно и я потом сам не найду.
Здравствуйте, <Аноним>, Вы писали:
А>Просьба модератору не переносить топик, так как срочно и я потом сам не найду.
Переносить я ничего не буду, потому что топик вполне по теме форума. Но на будущее — твои проблемы что тебе надо срочно и ты не найдешь никоим разом не являются оправданием неверного выбора форума. Найти же свои сообщения, в том числе и в мусорке, очень просто — достаточно зайти в собственный профиль и выбрать ссылку с количеством написанных сообщений.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
Здравствуйте, Аноним, Вы писали:
А>допустим есть два смайла "
" и "
"
А>мне нужно как то записать
А>что я ищу все слова вида "
" и "
" с произвольным количеством whitespace characters вначале и в конце.
Количество "произвольным" означает, в том числе и 0, то есть отсутствие, что , как сказано далее:
А>сейчас вот так "
|
" что реагирует, например, на "abc
af" что мне не нужно.
"не нужно". Видимо, требуется один или несколько. Тогда вместо астерикса (звёздочки) нужен плюс:
(?<=^|\s+?)(\:\)|\:\()(?=\s+?|$)
То есть, ищем смайлы
…(\:\)|\:\()…
которые идут после либо начала строки\текста либо одного или нескольких пробельных символов:
(?<=^|\s+?)(\:\)|\:\()…
и после которых один или несколько пробельных символов или конец строки\текста:
(?<=^|\s+?)(\:\)|\:\()(?=\s+?|$)