首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >..YAML tmLanguage字符串相互重叠

..YAML tmLanguage字符串相互重叠
EN

Stack Overflow用户
提问于 2015-01-10 18:38:25
回答 1查看 116关注 0票数 1

我想知道,由于我正在创建一个.YAML-tmLanguage文件(用于我的命令),我想为NBT标记编写一些代码。目前,它检测所有命令,@a@r@p@etruefalse和任何数字。

所以我在想,我该怎么做?目前,这是我的代码:

代码语言:javascript
复制
- comment: String (single)
  name: string.quoted.single.mcCmd
  match: \'.*\'
- comment: String (double)
  name: string.quoted.double.mcCmd
  match: \".*\"

当我在一行中只有一种类型(单/双)的字符串时,这是可行的。例如,执行text:"Hello"将使"Hello"突出显示。如果我执行text:"Hello",color:'blue',它也会工作,但是如果我尝试执行text:"Hello",color:"blue",它将突出显示"Hello",color:"blue",而不仅仅是"Hello""blue"

那么,如何让代码检测“开始”和“关闭”字符串呢?

(运行崇高文本3,安装了AAAPackageDev )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-10 19:00:31

您可以使用:\'.*\'代替\'[^']*\' (类似地,用于双引号)。

您所面临的问题是regex *运算符是“贪婪的”,它将消耗尽可能多的字符。因此,.*正在吞没两个引号之间的所有内容!

通过使用[^']*,虽然运算符仍然“贪婪”,但它不能超过结束引号。(如果您不知道语法,[^']的意思只是“not '”。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27879798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档