函数列表中的类范围正则表达式

时间:2014-07-10 04:31:25

标签: regex notepad++

我正在尝试在NPP的functionList.xml中定义解析器。我的文件被拆分为:

------------------
{{header}}
------------------ {

[subheader]

random text

}

我假装标题是类,副标题是函数,这样它们就会显示在函数列表中的一个很好的层次结构中,如下所示:

header 1
    subheader 1
    subheader 2
header 2
    subheader 1

XML:

<classRange mainExpr="^\{\{([a-zA-Z]+\s?)+\}\}" displayMode="node">
    <className>
        <nameExpr expr="([a-zA-Z]+\s?)+"/>
    </className>
    <function
        mainExpr="^\[([a-zA-Z0-9\\]+\s?){1, 4}\]"
        displayMode="$functionName">
        <functionName>
            <nameExpr expr="([a-zA-Z0-9\\]+\s?){1, 4}"/>
        </functionName>
    </function>
</classRange>

为了正确搜索标题,需要对classRange mainExpr(或问题所在的其他地方)进行哪些更改?

2 个答案:

答案 0 :(得分:1)

逗号之后你不应该有空格:

"^\[([a-zA-Z0-9\\]+\s?){1,4}\]"

将这些空间转换为“预期的”&#39;范围为文字字符串,因此它将匹配^\[([a-zA-Z0-9\\]+\s?),然后是字面{1, 4},然后是\]

答案 1 :(得分:0)

如果有人遇到类似问题,则修复显然只是在funcNameExpr代码中使用nameExpr代替functionName