我有一个很长的文本,其中包含一些标签来突出显示之间的文本。我需要匹配这些标签之间的文本。这是标签列表:CA | 欧 | TC。所以我这样做了:\[[CA|OU|TC]+\][\s\S]*?\[-[CA|OU|TC]+\]它正确匹配这些字符串[CA] bla bla [-CA][OU] bla[-OU][TC] blabla [-TC]问题是我只需要在标签相同的情况下进行匹配。它不应与以下内容匹配。[CA] bla bla [-OU]有任何想法吗?谢谢你。
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
您可以使用
\[(CA|OU|TC)][\s\S]*?\[-\1]
请参阅正则表达式演示。
在(CA|OU|TC)形成一个捕获组和\1相同的值相匹配。
var s = '[CA] bla bla [-CA] [OU] bla[-OU] [TC] blabla [-TC]] [CA] bla bla [-OU]';
var rx = /\[(CA|OU|TC)][\s\S]*?\[-\1]/g;
console.log( s.match(rx) );
添加回答
举报
0/150
提交
取消