在大型机中通过 REXX 执行正则表达式以在 PS 文件或 PDS 成员中查找模式时遇到错误
Facing error while executing a regular expression to find a pattern in PS file or PDS member via REXX in mainframe
在 REXX
工具中,我想检查 PS 文件是否包含 mainframe
中的特定模式(如连续的 16 位数字),我想为此执行一个正则表达式然后检查 RC 以进行进一步处理。
我尝试了下面的代码,但无法执行正则表达式。
/* REXX */
STRIGN = "rc'[0-9]{16}'"
ADDRESS ISPEXEC "VIEW DATASET('XXXX.XXXXX.XXXXX')"
ADDRESS ISREDIT "MACRO (STRING)"
"F" STRING
SAY RC
对于代码,第
行出现错误
"F" STRING' 'IKJ56500I COMMAND F NOT FOUND' and RC = '-3'.
任何人都可以建议使用 mainframe
中的 REXX
执行正则表达式的任何方法。
您需要创建一个单独的 ISPF 编辑宏,其中包含您的编辑命令:
/* REXX */
address isredit
"macro"
"f rc'[0-9]{16}'"
say rc
然后在编辑数据集时指定此宏。例如。如果您创建一个名为 'findnum' 的宏,那么您将编码:
address ispexec
"edit dataset('XXXX.XXXXX.XXXXX') macro(findnum)" )
这将导致为该数据集和 运行 'findnum' 宏调用编辑。
您的宏必须位于作为 SYSPROC 或 SYSEXEC 串联的一部分的数据集中。
在 REXX
工具中,我想检查 PS 文件是否包含 mainframe
中的特定模式(如连续的 16 位数字),我想为此执行一个正则表达式然后检查 RC 以进行进一步处理。
我尝试了下面的代码,但无法执行正则表达式。
/* REXX */
STRIGN = "rc'[0-9]{16}'"
ADDRESS ISPEXEC "VIEW DATASET('XXXX.XXXXX.XXXXX')"
ADDRESS ISREDIT "MACRO (STRING)"
"F" STRING
SAY RC
对于代码,第
行出现错误"F" STRING' 'IKJ56500I COMMAND F NOT FOUND' and RC = '-3'.
任何人都可以建议使用 mainframe
中的 REXX
执行正则表达式的任何方法。
您需要创建一个单独的 ISPF 编辑宏,其中包含您的编辑命令:
/* REXX */
address isredit
"macro"
"f rc'[0-9]{16}'"
say rc
然后在编辑数据集时指定此宏。例如。如果您创建一个名为 'findnum' 的宏,那么您将编码:
address ispexec
"edit dataset('XXXX.XXXXX.XXXXX') macro(findnum)" )
这将导致为该数据集和 运行 'findnum' 宏调用编辑。
您的宏必须位于作为 SYSPROC 或 SYSEXEC 串联的一部分的数据集中。