我正在尝试为SublimeText 2编写自定义语法定义。我制作了正则表达式并对其进行了测试(使用SublimeText2的正则表达式查找),并且正则表达式适用于我想要的内容,但是,一旦我将其放入。 tmLanguage文件我收到以下错误:
Error in regex: undefined group option in regex
这是正则表达式:
\b([Aa]|[Tt]he|[Aa]n)\b(?(?![ (),'.a-zA-Z]*\b([Aa]|[Tt]he|[Aa]n)\b)([ (),a-zA-Z]*[0-9]{2,3})|(,,,))
这是我的XML .tmLanguage文件
<?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>techpaper</string>
</array>
<key>name</key>
<string>Tech Paper</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\b([Aa]|[Tt]he|[Aa]n)\b(?(?![ (),'.a-zA-Z]*\b([Aa]|[Tt]he|[Aa]n)\b)([ (),a-zA-Z]*[0-9]{2,3})|(,,,))</string>
<key>name</key>
<string>string.list.element</string>
</dict>
</array>
<key>scopeName</key>
<string>source.techPaper</string>
<key>uuid</key>
<string>092f2f93-b3ad-461d-9ca2-978b1c2bb7ad</string>
</dict>
</plist>
提前感谢您的帮助!
答案 0 :(得分:0)
正则表达式的W3C XML风格在高级操作中非常缺乏,并且不支持条件或环视,我怀疑它可能是undefined group option
所指的。
以下部分是一个负向前瞻,不允许它自己:
(?![ (),'.a-zA-Z]*\b([Aa]|[Tt]he|[Aa]n)\b)
您还使用(?( .. )()|()
的负面预测,我怀疑它是用于创建XML flavor regex不支持的条件语句。