Точные коды Ascii, соответствующие шаблонам Lua

Я перевожу проект с Lua на C++. В версии Lua я использую регулярные выражения Lua, но с такой простой целью, что в C++ я мог бы сделать это, просто сравнивая символы с некоторыми кодами Ascii.

Однако для этого мне нужен точный код ascii, который каждый класс символов< /а> соответствует.

Например, %s соответствует всем символам пробела, но что это за символы? Мне нужно знать это для каждого класса символов Lua.


person user6245072    schedule 12.09.2016    source источник
comment
Мне нужно знать это для каждого класса символов Lua. Вы можете переборщить каждый, создав программу, которая перечисляет каждый символ ascii и смотрит, что соответствует чему   -  person Thomas Ayoub    schedule 12.09.2016
comment
@Wiktor Stribiżew не знал о существовании этого заголовка. Собираюсь использовать это. Спасибо.   -  person user6245072    schedule 12.09.2016
comment
Полный список   -  person Egor Skriptunoff    schedule 12.09.2016


Ответы (1)


Взгляните на исходный код Lua:

case 'a' : res = isalpha(c); break;
case 'c' : res = iscntrl(c); break;
case 'd' : res = isdigit(c); break;
case 'g' : res = isgraph(c); break;
case 'l' : res = islower(c); break;
case 'p' : res = ispunct(c); break;
case 's' : res = isspace(c); break;
case 'u' : res = isupper(c); break;
case 'w' : res = isalnum(c); break;
case 'x' : res = isxdigit(c); break;
case 'z' : res = (c == 0); break;  /* deprecated option */

Вы можете видеть, что в C++ <cctype> (ctype.h) есть аналогичные методы:

isalnum     Check if character is alphanumeric (function )
isalpha     Check if character is alphabetic (function )
isblank     Check if character is blank (function )
iscntrl     Check if character is a control character (function )
isdigit     Check if character is decimal digit (function )
isgraph     Check if character has graphical representation (function )
islower     Check if character is lowercase letter (function )
isprint     Check if character is printable (function )
ispunct     Check if character is a punctuation character (function )
isspace     Check if character is a white-space (function )
isupper     Check if character is uppercase letter (function )
isxdigit    Check if character is hexadecimal digit (function )

На этой странице также есть соответствующие диапазоны значений ASCII.

person Wiktor Stribiżew    schedule 12.09.2016
comment
Разве это не должно быть <cctype> (без .h)? Спасибо, в любом случае. - person user6245072; 12.09.2016
comment
Я просто скопировал имя с расширением со страницы документации. Позвольте мне изменить его так, как он указан в заголовке. - person Wiktor Stribiżew; 12.09.2016