Javascript 在word中匹配两个相等的字符并替换为一个RE
我想将两个相等的字符转换为单个字符,如Javascript 在word中匹配两个相等的字符并替换为一个RE,javascript,regex,Javascript,Regex,我想将两个相等的字符转换为单个字符,如bannana应该是香蕉//将“nn”删除为单个“n”。(除“aa”外,所有应按上述方式转换) 需要正则表达式来完成这些类型的工作。使用 下面是一个javascript示例: "khuddar".replace(/([^a])\1/g, "$1") // => "khudar" "maanas".replace(/([^a])\1/g, "$1") // => "maanas" [^a]-匹配的字符不是a (…)-匹配正则表达式并将其保存到
bannana应该是香蕉//将“nn”删除为单个“n”
。(除“aa”外,所有应按上述方式转换)
需要正则表达式来完成这些类型的工作。使用
下面是一个javascript示例:
"khuddar".replace(/([^a])\1/g, "$1")
// => "khudar"
"maanas".replace(/([^a])\1/g, "$1")
// => "maanas"
-匹配的字符不是[^a]
a
-匹配正则表达式并将其保存到组1(2,3,…如果后面有更多括号)(…)
-组1的反向参考。如果匹配的零件是\1
,b
也请参考\1
李>b
a
,则可以使用
.replace(/([b-z])\1/ig, "$1")
见
正则表达式解释:
-捕获组1捕获从([b-z])
到b
的任何ASCII字母(和z
到A
,因为z
修饰符使模式不区分大小写)/i
-与上面的组捕获的文本值相匹配的一种模式(因此,模式匹配2个相同的ASCII字母)\1
$1
,将2个相同的ASCII字母替换为该字母的1个匹配项
var re=/([b-z])\1/gi;
var str='khuddar
maanas
hello
apple
F11';
变量subst='$1';
var结果=str.replace(re,subst);
document.body.innerHTML=结果代码>什么是编程语言?有些正则表达式引擎不能满足您的需要。我不想申请“aa”解释请解释什么?@higunjan,我添加了一个解释和一个指向正则表达式信息网站的链接,解释了反向引用(\1
)。
.replace(/([b-z])\1/ig, "$1")