如何借助JS中的RegExp从一行中删除包含两个相似符号的行中的单词。 例如,我们有#34; Hello,Aleks!"。我们需要删除" Hello"因为我们有" ll"。 我可以使用警报(" Hello,Aleks!" .replace(/(。)\ 1 / g," $ 1"))。 它会删除双字母。但我需要删除包含双字母的单词。谢谢!
答案 0 :(得分:1)
您可以在加倍后的字母之前使用\w*
(0个或更多字母/数字/ _
符号):
var res = "Hello, Aleks!".replace(/\w*(\w)\1\w*/g, "");
console.log(res);

要同时删除要关注的任何非字词,请添加\W*
(除字母/数字/ _
符号以外的0个或多个字符):
var res = "Hello, Aleks!".replace(/\w*(\w)\1\w*\W*/g, "");
console.log(res);

注意:\w
匹配字母,数字和_
。如果您只想匹配字母,请改用[a-zA-Z]
。
如果您需要匹配Unicode字母,请使用XRegExp
\p{L}
或build a regex from Unicode ranges。