0

我正在尝试写一个片段。对于这篇文章,我超级简化了它。如果我在这个选择上运行它:

arg1

该片段应输出:

doFunc('arg1', 'null');

如果我在这个选择上运行它:

arg1, arg2

片段应该输出

doFunc('arg1', arg2);

null如果没有找到正则表达式匹配,我无法弄清楚如何使用字符串。这是我到目前为止所拥有的:

 doFunc('${SELECTION/([^,]+)(,.*)?/\1/}', ${SELECTION/([^,]+)(,.*)?/\2/});

所以这里的问题是${SELECTION/([^,]+)(,.*)?/\2/}我想像高等教育一样\2 ? \2 : null做这可能吗?

谢谢

4

1 回答 1

1

Sublime Text Snippets 使用 Boost 库,它实际上在格式部分支持三元运算符。(?{2}(\2):'null')因此,您可以像三元运算符一样编写。

如果您将代码段更改为此,它将具有指定的行为:

doFunc(${SELECTION/^([^,]+)(?:,\s*(.*))?/'\1', (?{2}(\2):'null')/});
于 2016-02-24T18:58:24.233 回答