我需要一个JS正则表达式,它可以找到没有任何相同单词字符包围的单词字符的匹配项。例如,如果我们要查找 b ,它应匹配 aba 或 ubu ,而不应 abc 或 BCA
给定字符串中的任何字符都是小写英文字母,这些字母是备用的(例如我们可以 ababa 但不能 bbaa )。
我尝试使用这样的外观:
/b(?=a)/g
但我无法弄清楚如何替换 a 以便我们知道它与b
左侧和右侧的符号相同。任何见解都表示赞赏。
答案 0 :(得分:2)
使用以下正则表达式:
(.)(b)(?=\1)
您可以匹配这些类型的角色。如果你需要操纵包围的b
,那么你可以这样编码:
> "aabb aba".replace(/(.)(b)(?=\1)/g, function(match, p1, p2) {
return p1 + 'c';
});
< "aabb aca"
答案 1 :(得分:0)
您可以执行以下操作;
"abaubuiyiatbzsgegestsabn"
然后,如果您想获得"geg"
中的所有隔行扫描模式,您不仅应该获得"ege"
,还应该获得var str = "abaubuiyiatbzsgegestsabn".split(/(\w)(?=[^\1]\1)/g)
.slice(1)
.reduce((p,c,i,a) => i&1 ? (p[p.length-1] += (a.slice(i)
.join("")
.slice(0,2)),p) : p.concat([[c]]) ,[]);
console.log(str);
ffmpeg -i in.mkv -vf scale=hd720 -map 0 -c copy -c:v libx265 out.mkv