我正试图重新放置在我的字符串中以@开头的任何单词......
我尝试过多种变体,但似乎没有一种变体......
rereplace(getMessages.term, "[\s]?\B@\w+", "", "ALL")
有什么建议吗?
答案 0 :(得分:3)
CF的内置正则表达式不支持后视,这是你需要实现的目标(因为你想看看@之后“(之前)@并验证是什么/不存在,不包括它在你的比赛中。)
然而,您可以轻松地使用Java,使用Java的正则表达式支持(它支持后视图),就像这样:
<cfset Text = Text.replaceAll('(?<!\w)@\w+','') />
(?<!\w)
部分是一个负面的背后说法“确保在此职位之前没有\ w。”
您可能还想考虑使用(?<!\S)
来阻止任何非空格字符,或者如果您需要匹配特定字符,请使用(?<![a-z_\-.,])
或其他。