这是我目前的正则表达式:/[Hh][Ee][Ll][Ll][Oo](?![A-Za-z0-9\-])(?![^<]*>)/g
正则表达式:匹配不被其他字母包围的字,只包括在结果字
这是我的匹配测试:
hello helloa ahello <hello>
^^^^^ !!!!!!
Should match ^^^^^ only
我现在的正则表达式也匹配!!!!!
。我做了一个正则表达式,看起来像这样:/(?<![A-Za-z0-9\-])[Hh][Ee][Ll][Ll][Oo](?![A-Za-z0-9\-])(?![^<]*>)/g
但在javascript中不支持lookbehinds,所以我不知道该怎么做。
编辑:我认为张贴项目将帮助,所以this is what I'm working on.
@WiktorStribiżew这是一个有点混乱,你不介意解释? – zevee
从你的代码中,我猜你想匹配一个不是复合词的一部分的整个单词'hello',只能在'<...>'子串之外替换它。尝试['s.replace(/(<[^>)*>)|( - )?\ b(hello)\ b(?! - )/ gi,function($ 0,$ 1,$ 2,$ 3){return $ 1?$ 0: ($ 2?$ 0:“!!!”+ $ 3 +“!!!”);})'](https://jsfiddle.net/ma9seau9/1/)。 –