SublimeText2语法定义正则表达式错误

时间:2013-06-06 11:52:58

标签: xml regex sublimetext2 syntax-highlighting definition

我正在尝试为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>

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

正则表达式的W3C XML风格在高级操作中非常缺乏,并且不支持条件或环视,我怀疑它可能是undefined group option所指的。

以下部分是一个负向前瞻,不允许它自己:

(?![ (),'.a-zA-Z]*\b([Aa]|[Tt]he|[Aa]n)\b)

您还使用(?( .. )()|()的负面预测,我怀疑它是用于创建XML flavor regex不支持的条件语句。