3

我知道我可以在 tmLanguage 文件中使用 Ruby 的正则表达式,但在其他配置文件中似乎并非如此,例如扩展。以语言贡献firstLine值为例。使用字符类(例如或)时出现错误。因此,我想知道那里实际上允许什么。你将如何匹配那里的空格?\s\p{L}

更新:评论后我尝试了这个:

"firstLine": "^(lexer|parser)?\\s*grammar\\w+;"

这应该匹配第一行,例如lexer grammar G1;or grammar G1;。有没有办法测试那个 RE 是否有效,否则我没有验证?

更新 2

使用正确的语法很重要,它会神奇地起作用:

"firstLine": "^(lexer|parser)?\\s*grammar\\s*\\w+\\s*;"
4

1 回答 1

0

.NET 正则表达式使用的语法主要基于 Perl 5,但它确实添加了一些新功能,例如命名捕获组和从右到左匹配,因此不应将两者视为相同。以下是 .NET 正则表达式的完整 MSDN 文档:

.NET 框架正则表达式

\s是 .NET 中的一个有效字符类,但如果不查看您正在尝试的代码,就很难准确说出问题所在。安德鲁可能是对的,你只是没有逃脱\.

于 2016-08-21T15:24:43.937 回答