使用regex(perl)提取函数名和参数时遇到一些困难 在以下声明中
(defun foo#bar (arg1 arg2/param1 param2)
;function definition goes here
)
我正在寻找的正则表达式模式应匹配 ONLYfoo #bar arg1 arg2
我知道\K
此时要重置匹配的文字。例如,匹配" foo \ Kbar"不会匹配bar"。 它将匹配" foobar",但会假装只有" bar"匹配。
所以在我的情况下使用\ K会给出
(defun \K.*\(.*\/
- >我需要foo#bar (arg1 arg2/
foo#bar arg1 arg2
我不知道如何隔离"("和" /"不使用捕获组)之间的以下参数(0到n次出现)。
感谢您的回复
关于"为什么"
的更多信息我试图使用functionList.xml文件在Notepad ++中解析用户定义的语言
<parser id="my_language_name" displayName="My language" commentExpr=";">
<function
mainExpr="\(defun.*\(.*/.*\)"
displayMode="$functionName">
<functionName>
<nameExpr expr="(?<=\(defun).*(?= \()."/>
</functionName>
</function>
</parser>
我尝试在nameExpr节点中使用捕获组,直到现在都没有运气。