aardio 文档
aardio 范例: 拆分复杂字符串
//拆分复杂字符串
import console;
var str = /***
abc def 123
------------------------
dec xyz 456 中文
------------------------
***/
//不指定任何分隔符,按字符拆分,多字节的中文字符拆分为一个数组元素
var arr = string.split(str);
//指定多个单字节分隔符,连续的分隔符中间拆分为空字符串
var arr = string.split(str," -");
//将用尖括号指定连续字符组成的分隔串单位,string.split 不支持其他模式语法。
var arr = string.split(str,"<------------------------>");
//string.splitEx 提供更强的拆分功能,分隔符支持模式匹配语法
var arr = string.splitEx(str,"\-\-\-+");
//如果模式串以 ^ 开始,则分隔符的第一个捕获组添加到下个拆分结果的前面
var arr = string.splitEx(str,"^(\-\-\-+)");
//如果模式串以 $ 结束,则分隔符的第一个捕获组添加到上个拆分结果的后面
var arr = string.splitEx(str,"(\-\-\-+)$");
/*
string.lines 与 string.splitEx 拆分规则相同。
但 string.lines 返回的是迭代器,启动更快并按需拆分,不需等待全部拆分完成才能获取结果。
*/
for line in string.lines(str,"\-\-\-+"){
//console.log(line);
}
//除了可以自定义行分隔符,还可以相同规则自定义列分隔符
for items in string.lines(str,"\-\-\-+","\s+"){
//自定义列分隔符以后,每次循环返回的都是包含多个列的数组
console.dumpTable(items);
}
/*
一些编程语言在以正则表达式拆分字符串时,将捕获组自动添加到拆分数组中。
这可能会导致不小心地误用,而且提取的捕获组与拆分结果被并列到拆分结果,可能需要二次处理。
aardio 的区别是:
- 使用更简更快的模式匹配
- 明确使用 ^ 或 $ 指定是否提取捕获组,避免误用,且可以灵活控制提取到拆分结果的头部还是尾部
- 可以同时进行行列多级拆分。
这个功能可以节省大量字符串处理代码。
在 aardio 代码中的 string.lines 使用频率也比较高。
*/
console.pause();
Markdown 格式