我有以下SyntaxDefinition.xml文件,我用它来为SilverStripe(.ss)文件创建语法高亮显示。但是,我使用以下代码得到了正则表达式错误:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE syntax SYSTEM "syntax.dtd">
<syntax>
<head>
<name>SilverStripe Syntax</name>
<charsintokens><![CDATA[_0987654321abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@]]></charsintokens>
</head>
<states>
<default id="Base" color="#000">
<state id="String" color="#760f15">
<begin><regex>"</regex></begin>
<end><regex>(((?<!\\)(\\\\)*)|^)"</regex></end>
</state>
<state id="Variable" color="#ff0000">
<begin><regex>^\$([a-z])(?:)</regex></begin>
<end><regex>[\n\r]</regex></end>
</state>
<import mode="PHP-HTML"/>
</default>
</states>
</syntax>
我希望此代码的“变量”部分为以美元符号开头的任何代码着色,例如$内容。
答案 0 :(得分:0)
尝试:
<begin><regex>^\$[^\r\n]+</regex></begin>
或
<begin><regex>^\$</regex></begin>
取决于它的工作原理
答案 1 :(得分:0)
我找到了一些似乎有用的代码:
<regex>(\$([\w\d])+)</regex>