我想知道,由于我正在创建一个.YAML-tmLanguage文件(用于我的命令),我想为NBT标记编写一些代码。目前,它检测所有命令,@a、@r、@p、@e、true、false和任何数字。
所以我在想,我该怎么做?目前,这是我的代码:
- 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 )
发布于 2015-01-10 19:00:31
您可以使用:\'.*\'代替\'[^']*\' (类似地,用于双引号)。
您所面临的问题是regex *运算符是“贪婪的”,它将消耗尽可能多的字符。因此,.*正在吞没两个引号之间的所有内容!
通过使用[^']*,虽然运算符仍然“贪婪”,但它不能超过结束引号。(如果您不知道语法,[^']的意思只是“not '”。)
https://stackoverflow.com/questions/27879798
复制相似问题