标识 COBOL 中部分的正则表达式

标签 regex cobol regex-lookarounds adobe-brackets

我正在为 Brackets 定制一个大纲插件,它使用正则表达式来识别当前打开的文件的大纲。

我使用 regex101.com 创建了以下正则表达式(使用环视来确定该行以七个空格开头并以“SECTION.”结尾):

(?<=^       )([A-Za-z\-0-9]*)(?= SECTION\.[ ]*$)

根据 regex101.com 的说法,这是可以的,但是当通过 jshint/jslint 验证时,它声明它无效。当我测试它时,它不起作用(我怀疑 JSHint/JSLint 是正确的)。

以下是一些 Cobol 代码的示例,我希望在其中获得 2000-GET-EXPECTED-BY-DATE 和 2020-GET-DUE-DATE。

          ...
      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.
          ...

所以我的问题是:

  • 正则表达式是否有效?
  • 如果无效,那我做错了什么?
  • 我应该如何编写正则表达式来查找每个部分的名称?

最佳答案

这对我来说很有用,可以找到带有“SECTION”的行:

^[ ]{7}(.*)[ ]SECTION\.$

演示: http://regex101.com/r/zC1xY6/2

如果您只想要部分名称:^[ ]{7}\d+\-(.*)[ ]SECTION\.$

关于标识 COBOL 中部分的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25153472/

相关文章:

cobol - 如何将 COBOL 程序员转变为现代程序员

查找连续重复的单词时 Python 后视正则表达式 "fixed-width pattern"错误

python - 如何用另一个列表中的数字替换字符串中的数字?

java - 需要具有动态值的正则表达式

c# - 属性参数中的正则表达式约束抛出错误

db2 - COBOL 将 0 添加到 COMPUTE 中的变量

java - Java 中的 Matcher.find() 对正则表达式进行分组时出现错误结果

c# - 用 C# 动态读取 COBOL 重新定义

正则表达式连续两次匹配包含一个字符的单词

regex - 有没有办法使用正匹配正则表达式运算符对字符串进行负匹配?