2012-05-09 2 views
0

Я пытаюсь rereplace любых слов, которые начинаются с @ в моей строке ...ReReplace любого слово, которое начинается с @

Я попробовал несколько вариантов, но ни один из них не похоже, работают. ..

rereplace(getMessages.term, "[\s]?\[email protected]\w+", "", "ALL") 

Любые предложения?

+0

Можете ли вы добавить пример для тестирования? – Busches

+0

переобучение («@ CaylaCharnise были близнецами, помните! У меня здесь небольшой грипп :(», «[\ s]? \ B @ \ w +», «», «ALL») – TheJason

+0

Цель состоит в том, чтобы вырезать @ CaylaChamise из строки – TheJason

ответ

3

Встроенное регулярное выражение CF не поддерживает look-behinds, что вам нужно для достижения этого (поскольку вы хотите посмотреть «позади» (до) @ и проверить, что есть/не существует, без включая его в вашем матче).

Однако вы можете легко погрузить в Java, чтобы использовать поддержку регулярных выражений в Java (который не поддерживает просмотровые задом), так просто, как это:

<cfset Text = Text.replaceAll('(?<!\w)@\w+','') /> 

(?<!\w) часть представляет собой негативный взгляд-за говоря «убедитесь, что в этой позиции нет \ w».

Возможно, вы также захотите использовать (?<!\S), который предотвратит любой символ без пробелов, или если вам нужно сопоставить определенные символы, то используйте (?<![a-z_\-.,]) или что-то еще.

+0

Это работает для меня на CF9 –

+0

Он работает на всех Java-системах CFML. –

+0

Вот что мне нужно ... спасибо ! – TheJason

Смежные вопросы