Я создал функцию на языке Си для идентификации целого числа с некоторыми условиями с помощью регулярных выражений.Выражение regex работает нормально в UNIX и других платформах, но когда я использовал тот же кусок кода на мейнфрейме TN3270, символы в строковом / регулярном выражении, такие как '[', ']', '{', '}', заменяются напробелы во время компиляции.Я пытался использовать '\' перед всеми этими символами и, REG_EXTENDED во время regcomp, но без изменений в результате.
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).
Примечание: нет проблем с компиляцией кода, здесь я только что написал часть своего кода.Декларация и все здесь отсутствуют, это не проблема.
Кто-нибудь, пожалуйста, предложите.