Lua模式匹配所匹配的ASCII码

我正在将一个项目从Lua翻译成C++。在Lua版本中,我使用Lua的正则表达式,但对于一个如此简单的目的,在C++中我可以通过将字符与一些ASCII码进行比较来实现。

但是,为了做到这一点,我需要每个字符类匹配的确切ASCII码。

例如,%s可以匹配所有空格字符,但是这些字符确切是什么?我需要了解每个Lua字符类所匹配的ASCII码。

点赞
用户3832970
用户3832970

看看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;  /*被列为过时的选项*/

你可以看到在C++ <cctype>(ctype.h)中有类似的方法:

isalnum     检查字符是否为字母和数字(函数)
isalpha     检查字符是否为字母(函数)
isblank     检查字符是否为空格字符(函数)
iscntrl     检查字符是否为控制字符(函数)
isdigit     检查字符是否为十进制数字(函数)
isgraph     检查字符是否具有图形表示(函数)
islower     检查字符是否为小写字母(函数)
isprint     检查字符是否可打印(函数)
ispunct     检查字符是否为标点符号(函数)
isspace     检查字符是否为空格(函数)
isupper     检查字符是否为大写字母(函数)
isxdigit    检查字符是否为十六进制数字(函数)

该页面上还有相应的ASCII值范围。

2016-09-12 09:04:48