我正在为 Brackets 定制一个大纲插件,该插件使用正则表达式来识别当前打开文件的大纲。
使用 regex101.com 我创建了以下正则表达式(使用环视来确定该行以七个空格开头并以 'SECTION.' 结尾):
(?<=^ )([A-Za-z\-0-9]*)(?= SECTION\.[ ]*$)
根据 regex101.com 没关系,但是当通过 jshint/jslint 验证时,它表明它是无效的。当我测试它时,它不起作用(我怀疑 JSHint/JSLint 是正确的)。
以下是我希望获得 2000-GET-EXPECTED-BY-DATE 和 2020-GET-DUE-DATE 的一些 cobol 代码的示例。
...
2000-GET-EXPECTED-BY-DATE SECTION.
MOVE '2' TO W10-OPTION.
...
ELSE
MOVE 'Y' TO W10-NO-ERRORS
END-IF.
2017-EXIT.
EXIT.
/
2020-GET-DUE-DATE SECTION.
2020.
MOVE 'N' TO W10-USER-INPUT-DUE-DATE-SW.
MOVE '1' TO W10-OPTION.
...
所以我的问题是:
- 正则表达式是否有效?
- 如果无效,那么我做错了什么?
- 我应该如何编写正则表达式来查找每个部分的名称?