通过 RegEx 检查 Genexus RPG 中的字符串

Checking strings in Genexus RPG via RegEx

我们有一个 "string" / Character(15) 变量,我们需要用它来验证字符 5 到 10 是数字。在编写原始代码和使用正则表达式时,或者在使用 Genexus 构建 Java 对象时,这非常简单,但我们正在使用 Genexus 并构建到 RPG IV。

我是这个平台的新手(不到一年),所以我不知道该怎么做。我听说我们使用的 Genexus 版本中的正则表达式功能不适用于 RPG。我建议拉一个子字符串并获取它的 val() 如果它不是所有数字,则会导致错误,从而停止程序。显然,在我们的版本 Genexus/RPGLE.

中没有办法优雅地处理错误

有没有人有处理这个的经验?有人可以为我们指出一个好的方向,使用 Genexus for RPG 来解决这个问题吗?

您可以编写一个程序来进行检查 "by hand"。

即:

&str = '1234567890ABCDEF' // this would be the input string

&isValid = 1              // this would be the output
if len(&str) > 9
    for &index = 5 to 10
        &char = substr(&str, &index, 1)
        do case
            case &char = '0'
            case &char = '1'
            case &char = '2'
            case &char = '3'
            case &char = '4'
            case &char = '5'
            case &char = '6'
            case &char = '7'
            case &char = '8'
            case &char = '9'
            otherwise
                &isValid = 0
                exit
        endcase     
    endfor
else
    &isValid = 0        
endif