我需要一个JS正则表达式,它将找到不被任何相等的单词字符包围的单词字符的匹配项。例如,如果我们要查找b,则它应与aba或ubu相匹配,而不应与abc或bca相匹配。

给定字符串中的任何字符都是小写英文字母,它们是交替的(例如,我们可以有ababa但不能bbaa)。

我尝试使用类似的环顾:

/b(?=a)/g


但是我没有弄清楚如何替换a,以便我们知道它与b左右两侧的符号相同。任何见解均表示赞赏。

最佳答案

使用以下正则表达式:

(.)(b)(?=\1)


您可以匹配这些字符。如果需要操纵包围的b,则可以这样编写:

> "aabb aba".replace(/(.)(b)(?=\1)/g, function(match, p1, p2) {
    return p1 + 'c';
});




< "aabb aca"

10-08 12:39