我用 C 语言创建了一个函数,用于使用正则表达式在某些条件下识别整数。正则表达式在 UNIX 和其他平台上运行良好,但是当我在大型机 TN3270 上使用相同的代码时,字符串/正则表达式中的字符,如 '['、']'、'{'、'}' 被替换为编译期间的空格。我尝试在所有这些字符之前使用 '\' 和 regcomp 期间的 REG_EXTENDED,但结果没有变化。
int VALNUM ()
{
regex_t s_regex, *ps_regex = &s_regex;
char pc_regexpInt[ ] = "^[+-]{0,1}[0-9]{1,} *";
printf("pc_regexpInt value:%s\n",pc_regexpInt);
regcomp(ps_regex, pc_regexpInt, REG_EXTENDED)
regexec(ps_regex, pc_buffer, 0, NULL, 0);
regfree(ps_regex);
}
对我来说 printf 返回:
pc_regexpInt value:^ +- 0,1 0-9 1, *
并且 regexec 对于 pc_buffer 值(如(+120 或 -3.1415))也失败了。
注意:代码编译没有问题,这里我只是写了一段我的代码。这里缺少声明和所有内容,这不是问题。
任何人请建议。