正则表达式无法替换原本的内容
音乐软件识别按键需要左右都有空格,括号内和括号外要一致
var all = ` qq zz aa
ff. gg. gg. hh.
( xx nn ss ff hh ).- ( xx nn ss ff hh ). ( xx nn ss ff hh )-- dd. ff. gg. hh.
( zz nn aa ff jj ).- ( zz nn aa ff jj ). ( zz nn aa ff jj )--
( zz bb mm dd jj )-- ( zz bb mm dd jj )-- ( zz vv nn aa ff hh )-- ( zz vv nn aa dd hh )--
( zz aa dd gg )- ( bb hh )- ( bb dd )- ( xx vv bb mm gg )- bb- ( bb hh )- ( nn ss )- ( vv mm gg )-
( zz aa dd gg )- ( zz hh )- ( bb dd )- ( cc aa gg )- zz- ( cc bb )- zz- ( cc bb mm gg )-
xx- ( vv bb hh )- ( bb ss )- ( xx bb mm gg )- mm- ( xx vv bb )- bb- ( xx bb ff )-
( zz aa dd )- ( bb ff )- ( bb dd gg )- ( cc bb hh )- ( cc gg jj )- ( aa dd qq )- ( cc ff hh )- ( nn aa qq )-
( xx ss ff jj )- xx. qq. ( vv ss ww )- ( bb mm ss gg )-- vv- ( xx bb mm )- vv-
( zz aa dd gg )- ( bb hh )- ( bb dd )- ( cc aa gg )- zz- aa- zz- ( mm dd gg jj )-
mm- ( mm qq )- ( mm gg )- ( mm dd jj )- cc- ( aa dd )- vv- ( mm ss )-
( vv ss jj )- ( aa dd qq )- ( vv dd hh )- ( aa dd jj ). gg- ( mm ss ff hh ).- ( mm ss ff )- ( vv gg )-
( cc bb mm dd ).- ss. ( zz bb mm dd )- ( xx mm ss ff gg )-- bb- ( vv bb mm )- bb-
( zz aa dd gg )- ( zz hh )- ( bb dd )- ( cc aa gg )- zz- ( cc bb )- bb- ( cc bb )-
( vv nn aa ff )- gg- ss- ( vv nn aa ff )-- ff- ( bb mm ss gg )--
( zz cc bb ss )---- aa---- `
需要将括号外的后两位符号添加到括号内每一个数后面例如:
( xx nn ss ff hh ).- ==> ( xx.- nn.- ss.- ff.- hh.- ).-
我写的正则表达式是这样子的
// 选取到括号内的和后两位
var re = /(\()(\s*\w*)*(\))(.)(\S?)/;
var b = /(\()/g;
var c = /[a-z][a-z]/g
var su = all.match(b).length;
var target,neiron,tgget;
// 选取到目标
target = all.match(re)[0];
//获取目标的后两位
Symbol = target.slice(-2);
neiron = /(\w)(\w)/g;
//获取目标的目标数字
tgget = target.match(neiron)+Symbol;
//替换一个数字
target = target.replace(neiron,tgget);
运行结果target 缺不是这个样子
tgget = xx,nn,ss,ff,hh.-
neiron = /(\w)(\w)/g
target = ( xx,nn,ss,ff,hh.- xx,nn,ss,ff,hh.- xx,nn,ss,ff,hh.- xx,nn,ss,ff,hh.- xx,nn,ss,ff,hh.- ).-
Symbol = .-