OpenEdge中的正则表达式


春风助手
2025-02-06 02:21:59 (25天前)

我想在OpenEdge中检查变量是否在pascal情况下。

我找到了matches运算符,并编写了以下代码:


  1. define variable cVariable as character no-undo.

    cVariable = cPascalCase”:U.

    message cVariable matches c[A-Z]*’:U.

但是它不起作用,它显示“否”。有没有办法在OpenEdge中指定第二个字符应为大写?还有,要检查变量是否包含以大写字母开头的单词组?

提前致谢!

2 条回复
  1. 1# 只怕再见是故人 | 2020-08-25 11-57

    MATCHES不支持正则表达式。 该文档说,只需要简单的通配符,例如.和*。如果您知道您的代码将始终在Windows上运行,则可以使用CLR桥来运行.NET代码:

    1. USING System.Text.RegularExpressions.*.
    2. DEF VAR cVariable AS CHAR NO-UNDO INITIAL "cPascalCase".
    3. DEF VAR regexp AS CLASS Regex NO-UNDO.
    4. regexp = NEW Regex("c[A-Z]*").
    5. MESSAGE regexp:IsMatch(cVariable).
    6. FINALLY:
    7. DELETE OBJECT regexp.
    8. END.
登录 后才能参与评论