gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 02:29:49 25 4
gpt4 key购买 nike

我正在尝试创建一个与我的日志中的自定义 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com