Coda的语法模式不起作用 - 正则表达式问题

时间:2011-06-20 10:45:12

标签: regex coda silverstripe

我有以下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>(((?&lt;!\\)(\\\\)*)|^)"</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>

我希望此代码的“变量”部分为以美元符号开头的任何代码着色,例如$内容。

2 个答案:

答案 0 :(得分:0)

尝试:

 <begin><regex>^\$[^\r\n]+</regex></begin>

<begin><regex>^\$</regex></begin>

取决于它的工作原理

答案 1 :(得分:0)

我找到了一些似乎有用的代码:

<regex>(\$([\w\d])+)</regex>