regex - Sublime Text 语法定义中的多行高亮显示

标签 regex xml syntax syntax-highlighting sublimetext

我正在尝试创建一个与我的日志中的自定义 header 相匹配的语法荧光笔。这是一个例子:

SYSTEM INFORMATION
Memory
----------------------------------------
Total                    14841733120
Free                     12260917248
Active                   583532544
Swap Total               5009104896
Swap Free                5009104896
% Used                   3
% Swap Used              0

Disk
----------------------------------------
Total                    114272681984
Free                     107483385856
% Used                   5

我想要匹配的是标题行(例如,Memory)和下一行的破折号。我开发了一个正则表达式模式来执行此操作:

^[\w|\ ]+(\ {0,})\n(\-{40})

不幸的是,当我尝试创建自定义语法荧光笔时,此正则表达式不再匹配。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>fileTypes</key>
    <array>
        <string></string>
    </array>
    <key>name</key>
    <string>mylog</string>
    <key>patterns</key>
    <array>
        <dict>
            <key>comment</key>
            <string>section header</string>
            <key>match</key>
            <string>^[\w|\ ]+(\ {0,})\n(\-{40})</string>
            <key>name</key>
            <string>constant.character.mylog</string>
        </dict>
    </array>
    <key>scopeName</key>
    <string>text.mylog</string>
    <key>uuid</key>
    <string>unique-uuid</string>
</dict>
</plist>

关于让自定义语法荧光笔匹配两行有什么建议吗?

最佳答案

恐怕这是不可能的。查看TextMate Manual .您不能使用单个正则表达式来跨行匹配。您可以做的最接近的事情可能是使用 beginend 关键字。看看这是否符合您的喜好?

...
<array>
    <dict>
        <key>begin</key>
        <string>^[A-Z][a-z ]*$</string>
        <key>end</key>
        <string>-{40}</string>
        <key>name</key>
        <string>variable.parameter</string>
    </dict>
</array>
...

关于regex - Sublime Text 语法定义中的多行高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115546/

相关文章:

regex - 在 Javascript 中匹配 IE7 和 IE8 中的不可破坏空格

java - 使用 RegEx 时如何保留分隔符?

xml - 使用 SimpleXmlElement 和 symfony2 输出 xml 文件

php - 尽管有 mysql 条目,NSArray 在 iOS 中为空

javascript - 从 .SRT 文件中添加或减去秒数

regex - REGEX输入验证

python-pptx - 如何以编程方式访问演示文稿部分标题?

c - 当指针出现在变量(指针*)的末尾时,这意味着什么?

mysql - 如何一起使用 UNION 和 GROUP_CONCAT

python - 我怎样才能接近实现? : from C++/C# in Python?