添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
单引号包含的是转义字符串,本就支持转义符,所以表示模式串里的转义符就要用两个转义符
双引号中的转义符 "\" 单引号里就写 '\\'
  1. io.open();
  2. str="good1234";
  3. 双引号匹配结果=string.match(str,"\a*")
  4. io.print("双引号匹配结果",双引号匹配结果);
  5. 单引号匹配结果=string.match(str,'\\a*')
  6. io.print("单引号匹配结果",单引号匹配结果);
复制代码

如果在单引号里再包含单引号 就要这样写
' \' ' 实际上他就是 " ' "
  1. io.open();
  2. str=//字符串中'有单引号
  3. 双引号匹配结果=string.match(str,"'")
  4. io.print("双引号匹配结果",双引号匹配结果);
  5. 单引号匹配结果=string.match(str,'\'')
  6. io.print("单引号匹配结果",单引号匹配结果);
复制代码

如果在双引号里要包含双引号,就要用两个双引号表示一个双引号,例如
" "" " 用单引号这样表示一个双引号 ' " '
  1. io.open();
  2. str=//字符串中"有双引号
  3. 双引号匹配结果=string.match(str,"""")
  4. io.print("双引号匹配结果",双引号匹配结果);
  5. 单引号匹配结果=string.match(str,'"')
  6. io.print("单引号匹配结果",单引号匹配结果);
复制代码

如果嫌烦,即要包含双引号,又要包含单引号,又不想用这些表示方法,可以用注释来表示字符串
字符串 =
//我想怎么写就怎么写" '
  1. io.open();
  2. str=//'我的左边是单引号右边是双引号"
  3. p=//'
  4. 匹配结果=string.match(str,p)
  5. io.print("匹配结果",匹配结果);
  6. p=//"
  7. 匹配结果=string.match(str,p)
  8. io.print("匹配结果",匹配结果);
  9. p=//'(:*?)"
  10. 匹配结果=string.match(str,p)
  11. 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