想捕获由 <> 标签标注的字符串,不知道下面这样的需求该如何实现。
//var rawTagStr ="AA<中→>BBCC<←中>DD<黄→>EE<←黄>FF";//output OK:<中→>BBCC<←中>,2 <黄→>EE<←黄>,16
var rawTagStr ="AA<中→>BB<青→>GG<←青>CC<←中>DD<←小>EEFF";//want: AA<中→>BB<青→>GG<←青>CC<←中>
var rawTagStr ="AA<中→>BB<青→>GG<←青>CC<←中>DDEEFF";//want: AA<中→>BB<青→>GG<←青>CC<←中>
var rawTagStr ="AA<中→>BB<青→>GG<←青>CCDDEEFF";//want: <青→>GG<←青>
var rawTagStr ="AA<中→>BB<青→>GGCCDDEEFF";//want: null
var reg = /(<[^>]{1,2}→>).+?(<←[^>]{1,2}>)/g;
while((tagMatch = reg.exec(rawTagStr)) !== null) {
var tag = tagMatch[0];
toIdx = tagMatch["index"];
console.log(tag + "," + toIdx);
}
1
sunhk25 OP markdown 怎么会这样。。。
|
2
chairuosen 2018-01-15 17:35:53 +08:00 1
/<(.)→>.*<←\1>/g
|
3
sunhk25 OP @chairuosen 感谢
var rawTagStr ="AA<黄→>EE<←黄>BBCCDD<黄→>EE<←黄>"; 再问一个,上面的正则这种情况会取最长范围(BBCCDD 会被包括在里面),求问如何修改 |
4
sunhk25 OP 谢谢,/<(.)→>.*?<←\1>/g
|