重新放置以@开头的任何单词

时间:2012-05-09 15:57:14

标签: regex coldfusion coldfusion-9 coldfusion-8

我正试图重新放置在我的字符串中以@开头的任何单词......

我尝试过多种变体,但似乎没有一种变体......

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

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

CF的内置正则表达式不支持后视,这是你需要实现的目标(因为你想看看@之后“(之前)@并验证是什么/不存在,不包括它在你的比赛中。)

然而,您可以轻松地使用Java,使用Java的正则表达式支持(它支持后视图),就像这样:

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

(?<!\w)部分是一个负面的背后说法“确保在此职位之前没有\ w。”

您可能还想考虑使用(?<!\S)来阻止任何非空格字符,或者如果您需要匹配特定字符,请使用(?<![a-z_\-.,])或其他。