0

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

在此先感谢您的帮助!

4

1 回答 1

0

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

以下部分是一个否定的前瞻,它本身也是不允许的:

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

您还使用了带有 的否定前瞻(?( .. )()|(),我怀疑它用于创建 XML 风格正则表达式也不支持的条件语句。

于 2013-06-06T12:29:16.207 回答