Warm tip: This article is reproduced from serverfault.com, please click

regex-自定义np ++函数列表表达式

(regex - Custom np++ functionlist expressions)

发布于 2020-11-26 18:49:05

哦,我很难理解我在这里做什么。

我正在创建一个自定义的记事本++ FunctionList。我知道如何添加它,并且正在解析,但是我无法从文档中弄清楚如何正确指定正则表达式。

在我的代码文件(对于一个名为Squiffy的程序)中,它包含一些节,有点像.ini文件,因此我首先复制了ini文件的功能列表代码。

我正在寻找像这样的部分: [[something]]: 在它自己的行上,以及像这样的子部分:[somesubsection]:

<?xml version="1.0" encoding="UTF-8" ?>

<NotepadPlus>
    <functionList>
        <!-- File format used for: .sq         -->
        <parser displayName="Squiffy" id="Squiffy" 
            commentExpr=""
        >
            <function mainExpr=mainExpr="^\[\[.*\]\]\:$" >
                <functionName>
                    <nameExpr expr="^\[\[.*\]\]*"/>
                </functionName>
            </function>
        </parser>
    </functionList>
</NotepadPlus>

我的问题是,我真的不明白是什么mainExprnameExpr应该寻找。我知道我可以在其中找到带有正则表达式的部分mainExpr,但是我不确定该如何处理nameXpr

Questioner
bgmCoder
Viewed
11
bgmCoder 2020-11-28 12:19:38

没有人有话要说!因此,我在notepad ++论坛上发布了此解决方案的来源:

        <parser
            id="Squiffy" displayName="Squiffy" commentExpr=""
        >
            <function
                mainExpr="(?-s)^\[(?:\[([^\[\]\r\n]+)\]|(?1))\]:"
            >
                <functionName>
                    <nameExpr expr="[^\[\]\r\n]+" />
                </functionName>
            </function>
        </parser>

这里是描述一个线程刚记事本++ functionlists配置。