You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让正则表达式完全匹配独立单词Stop,避免前后含字符时高亮

解决Monaco编辑器自定义语言中独立关键词高亮问题

针对你遇到的仅独立Stop单词未正确高亮、以Stop结尾/开头的复合单词错误高亮的问题,有两种可靠的解决方式:

方法一:使用单词边界正则修正匹配规则

直接将正则表达式替换为/\bStop\b/,利用\b单词边界特性,仅匹配前后为非单词字符(如空格、换行、标点等)的独立Stop单词。

修改后的tokenizer代码:

monaco.languages.setMonarchTokensProvider("mySpecialLanguage", {
    tokenizer: {
        root: [
            [/\bStop\b/, 'keyword']
        ],
    },
});

\b会匹配单词字符(字母、数字、下划线)与非单词字符的分界位置,因此QdStop、StopSS这类复合单词中的Stop前后都是单词字符,不会触发匹配。

方法二:使用Monarch内置关键词匹配机制(推荐)

如果有多个关键词需要处理,更推荐用Monarch原生的关键词配置,避免手动写正则可能出现的问题:

monaco.languages.setMonarchTokensProvider("mySpecialLanguage", {
    keywords: ["Stop"], // 可添加多个关键词,例如["Stop", "Start"]
    tokenizer: {
        root: [
            // 先匹配所有单词,再匹配关键词列表
            [/[a-zA-Z_]\w*/, { cases: { '@keywords': 'keyword' } }]
        ],
    },
});

这种方式会先扫描所有完整单词,再判断是否属于关键词列表,只有完全匹配的独立单词才会被标记为keyword,彻底避免部分匹配的问题。

内容的提问来源于stack exchange,提问作者laterday

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:05:10