我想在OpenEdge中检查变量是否在pascal情况下。
我找到了matches运算符,并编写了以下代码:
define variable cVariable as character no-undo.cVariable = “cPascalCase”:U.message cVariable matches ‘c[A-Z]*’:U.
但是它不起作用,它显示“否”。有没有办法在OpenEdge中指定第二个字符应为大写?还有,要检查变量是否包含以大写字母开头的单词组?
提前致谢!
MATCHES不支持正则表达式。 该文档说,只需要简单的通配符,例如.和*。如果您知道您的代码将始终在Windows上运行,则可以使用CLR桥来运行.NET代码:
USING System.Text.RegularExpressions.*.DEF VAR cVariable AS CHAR NO-UNDO INITIAL "cPascalCase".DEF VAR regexp AS CLASS Regex NO-UNDO.regexp = NEW Regex("c[A-Z]*").MESSAGE regexp:IsMatch(cVariable).FINALLY: DELETE OBJECT regexp.END.
USING System.Text.RegularExpressions.*.
DEF VAR cVariable AS CHAR NO-UNDO INITIAL "cPascalCase".
DEF VAR regexp AS CLASS Regex NO-UNDO.
regexp = NEW Regex("c[A-Z]*").
MESSAGE regexp:IsMatch(cVariable).
FINALLY:
DELETE OBJECT regexp.
END.