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

发布于 2024-11-16 12:06:22 字数 1158 浏览 4 评论 0原文

我有以下 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>

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

I have the following SyntaxDefinition.xml file that I am using to create syntax highlighting for SilverStripe(.ss) files. However, I get a regex error with the following code:

<?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>

I want the "Variable" part of this code to color any code starting with a dollar sign, e.g. $Content.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

荭秂 2024-11-23 12:06:22

尝试:

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

<begin><regex>^\
lt;/regex></begin>

取决于它的工作原理

Try:

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

or

<begin><regex>^\
lt;/regex></begin>

depending on how it works

风吹短裙飘 2024-11-23 12:06:22

我发现了一些似乎有效的代码:

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

I found a bit of code which seems to work:

<regex>(\$([\w\d])+)</regex>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文