Regex JS:在两个相同的单词之间搜索

我有一个很长的文本,其中包含一些标签来突出显示之间的文本。我需要匹配这些标签之间的文本。这是标签列表:CA | 欧 | TC。


所以我这样做了:


\[[CA|OU|TC]+\][\s\S]*?\[-[CA|OU|TC]+\]

它正确匹配这些字符串


[CA] bla bla [-CA]

[OU] bla[-OU]

[TC] blabla [-TC]

问题是我只需要在标签相同的情况下进行匹配。它不应与以下内容匹配。


[CA] bla bla [-OU]

有任何想法吗?谢谢你。


慕姐8265434
浏览 136回答 1
1回答

隔江千里

您可以使用\[(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) );
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript