我找到了regExp
var pattern:RegExp = new RegExp("\(\?\<\=\\s)" + string + "(?=[\\s|\,])", "ig");
有人在2011年写了回来。
我想在我的代码中使用它,以便在给定的文本中找到单词字符串。它必须是一个完整的词。 问题是,只有当它不在文本的开头并且它不在文本的末尾时才会找到“字符串”。 我该怎么做才能找到文本的第一行和最后一行(第一个单词之前没有空格,最后一个单词后面没有空格或标点符号。
答案 0 :(得分:2)
要匹配整个单词,您需要在任一端匹配单词边界。 ActionScript正则表达式在字符串的开头和结尾处也匹配为边界。
var pattern:RegExp = new RegExp("\\b" + string + "\\b", "ig");
请注意,string
可以包含正则表达式元字符,您应该quoting。
答案 1 :(得分:0)
?=是positive lookahead。它说你的文字后面必须跟括号内容(所以搜索到的文字不能是最后一个单词)。
要进行替换,可以使用以下正则表达式:
(?<=(^|\s))text(?=([\s,]|$))
请务必添加&#39; \&#39;当你将它添加到你的RegExp字符串时(以你在问题中粘贴的RegExp为例)。
您可以在javascript控制台上试用它(它仅适用于Chrome,其他浏览器不支持后置):
"text ciao text texttext a, a".replace(/(?<=(^|\s))text(?=([\s,]|$))/ig,"x")
按预期返回&#34; x ciao x texttext x,x&#34;(不替换texttext,因为它不是搜索到的单词)。