【发布时间】:2023-03-31 15:18:01
【问题描述】:
我有以下问题:
我正在使用 opensge Progress-4gl,版本 11.3。 我正在尝试使用正则表达式来检查输入的字符串是否根据我们的要求有效。
字符串应该正好是 6 个字符长,只有数字。所以我来到了这个正则表达式:^[0-9]{6}$. 根据在线正则表达式测试人员的说法,它应该可以工作。
现在,当我正在使用这个正则表达式时,就好像 {6} 部分被简单地忽略/删除了。
完整代码:
DEFINE VARIABLE regexp AS CLASS System.Text.RegularExpressions.Regex NO-UNDO.
regexp = NEW System.Text.RegularExpressions.Regex("^[0-9]{6}$").
IF NOT regexp:IsMatch(objKonprest:orderref) THEN
DO:
MESSAGE "Orderref is not valid!"
VIEW-AS ALERT-BOX.
end.
objkonprest:orderref 可以是任何字符串,但使用上面的代码,ismatch 将始终返回 false,除非它是 1 个字符的数字。
有人遇到过这种问题吗?我可以使用以下正则表达式来解决它:^[0-9][0-9][0-9][0-9][0-9][0-9]$,但这很愚蠢。
编辑:添加真实代码
提前致谢:)
【问题讨论】:
-
你应该发布你的真实代码和真实模式,不要删除多余的字符。
-
修改后显示真实代码
标签: .net regex progress-4gl