正则表达式匹配 OrgMode 标签

我想用 JavaScript 编写一个正则表达式来匹配 OrgMode 格式的标签

例子:

  • 示例标题 :tag1:tag2:tag3:

我已经测试了以下正则表达式,但它只匹配第一个和最后一个标签 (tag1,tag3):

\:\w+\:

谢谢


弑天下
浏览 227回答 2
2回答

小唯快跑啊

用/:(\w+)(?=:)/g您需要的值在第 1 组内。请参阅在线正则表达式演示。要点是(?=:)正向前瞻:它检查(并要求)但不消耗模式:右侧的\w+。请参阅下面的 JS 演示:var s = "Sample title :tag1:tag2:tag3:";var reg = /:(\w+)(?=:)/g;var results = [], m;while(m = reg.exec(s)) {  results.push(m[1]);}console.log(results);

拉风的咖菲猫

我的猜测是,如果我们要验证,这里可能需要一个带有开始和结束锚点的表达式:^((?=:\w+)(:\w+)+):$const regex = /^((?=:\w+)(:\w+)+):$/gm;const str = `:tag1:tag2:tag3::tag1:tag2:tag3:tag4::tag1:tag2:tag3:tag4:tage5::tag1:tag2:tag3:tag4:tage5`;let m;while ((m = regex.exec(str)) !== null) {    // This is necessary to avoid infinite loops with zero-width matches    if (m.index === regex.lastIndex) {        regex.lastIndex++;    }        // The result can be accessed through the `m`-variable.    m.forEach((match, groupIndex) => {        console.log(`Found match, group ${groupIndex}: ${match}`);    });}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript