单引号包含的是转义字符串,本就支持转义符,所以表示模式串里的转义符就要用两个转义符
双引号中的转义符
"\"
单引号里就写
'\\'
-
io.open();
-
str="good1234";
-
双引号匹配结果=string.match(str,"\a*")
-
io.print("双引号匹配结果",双引号匹配结果);
-
单引号匹配结果=string.match(str,'\\a*')
-
io.print("单引号匹配结果",单引号匹配结果);
-
复制代码
如果在单引号里再包含单引号 就要这样写
' \' '
实际上他就是
" ' "
-
io.open();
-
str=//字符串中'有单引号
-
双引号匹配结果=string.match(str,"'")
-
io.print("双引号匹配结果",双引号匹配结果);
-
单引号匹配结果=string.match(str,'\'')
-
io.print("单引号匹配结果",单引号匹配结果);
-
复制代码
如果在双引号里要包含双引号,就要用两个双引号表示一个双引号,例如
" "" "
用单引号这样表示一个双引号
' " '
-
io.open();
-
str=//字符串中"有双引号
-
双引号匹配结果=string.match(str,"""")
-
io.print("双引号匹配结果",双引号匹配结果);
-
单引号匹配结果=string.match(str,'"')
-
io.print("单引号匹配结果",单引号匹配结果);
-
复制代码
如果嫌烦,即要包含双引号,又要包含单引号,又不想用这些表示方法,可以用注释来表示字符串
字符串 =
//我想怎么写就怎么写" '
-
io.open();
-
str=//'我的左边是单引号右边是双引号"
-
p=//'
-
匹配结果=string.match(str,p)
-
io.print("匹配结果",匹配结果);
-
p=//"
-
匹配结果=string.match(str,p)
-
io.print("匹配结果",匹配结果);
-
p=//'(:*?)"
-
匹配结果=string.match(str,p)
-
io.print("匹配结果",匹配结果);
复制代码
Jacen 发表于 2011-5-16 20:00
aardio表示字符串的方式非常之多, 集成了各种流行编程语言中的常见用法.
字符串可以放在单引号中、也可以放 ...
这个还是刚刚知道,学习!
双引号将换行解释为'\n',这是默认的文本模式.
而在单引号中就完全忽略所有的换行,这样我们就可以将很长的文本换行写,然后忽略所有的换行,在汇编生成机器码的范例中,机器码之所以可以换行写就是基于这个机制.
//机器码
var
bin =
'\x55\x89\xE5\x81
\xEC\xC0\x00\x00
\x00\x53\x56\x57
\x8B\x75\x08\x31
\xC0\x0F\xA2\x89
\x1E\x89\x56\x04
\x89\x4E\x08\x5F
\x5E\x5B\x89\xEC
\x5D\xC3'
当然行注释用来表示字符串时, 是不允许包含换行的.
但是段注释里的换行都被解释为 '\r\n' 这是二进制模式, 在很多时候我们需要这样的写法.
当然段注释可以通过首尾星号的数目来嵌套,通过这种机制,我们就可以让任何不符合语法的字面值直接放到字符串中,而不需要任何处理。
code_c =
/****
#include <stdio.h>
#include <stdlib.h>
int func_c (const char *msg)
/*打开控制台窗口*/
io_reopen();
printf( "Hello! 我是C语言代码\n收到aardio传来的参数:%s\n",msg );
int num = 123; //C99
return num;
****/
import
tcc;
vm = tcc( );
vm.compile(code_c);
//编译C源码
你在其他编程语言中, 经常可能会因为书写千变万化的字符串而焦头烂额, 例如类似TCC, 在C语言中包含C语言, 你可能要一行一行的编辑字符串,写出丑陋不堪的代码, 但是用aardio, 就是选中代码,然后按CTRL+K,C就可以了.
甚至于是,你可以直接把一个文件用$包含到一个字符串里.
var
字符串 = $
"C:\目录\二进制文件.bin"
;
限于时间关系,我这里只是简单介绍一下,详细的大家可以看手册,多看范例。
aardio里有很多精心设计、很有意思的东西,大家可以多留心看看。
相关贴子链接
http://bbs.aardio.com/doc/refere ... /datatype/line.html
http://bbs.aardio.com/thread-2911-1-1.html
http://bbs.aardio.com/thread-3566-1-1.html
http://bbs.aardio.com/thread-1836-1-1.html