1.4 KiB
1.4 KiB
title | updated | created | tags | ||||
---|---|---|---|---|---|---|---|
提取路径 | 2022-03-14 07:47:18Z | 2022-01-10 03:35:59Z |
|
cadence的用户配置文件env中路径信息格式有些特殊。
键值中各路径信息之间用空格
分隔,路径信息中存在空格的,此路径信息放于""
对之间,如
set psmpath = $psmpath E:\lib\psm\
set padpath = $padpath E:\lib\pad\
set viewpath = $viewpath "E:\usercfg\test path\"
透过现象看本质是选择算法的重要前提,不可先入为主,不可被表象误导。
此需求的本质,是从字符串中提取两种东西:
- 不含空格或引号的字符序列;
- 以引号开头和结尾的字符序列
故可采用以下方法:
若没有混排则可直接调用
string.split
进行分割
import console;
var str = /*************
$viewpath "E:\usercfg\test path\" E:\lib\pad\ "E:\usercfg\test path 2\" $viewpath2
*************/
import preg
var pattern = //[^\s"]+|"[^"]*"
var regex = preg(pattern)
var res= {}
for m in regex.gmatch( str) {
table.push(res,m)
}
console.dump(res)
console.pause(true);
结果为
{
[1]="$viewpath";
[2]='"E:\\usercfg\\test path\\"';
[3]="E:\lib\pad\";
[4]='"E:\\usercfg\\test path 2\\"';
[5]="$viewpath2"
}
请按任意键继续 ...
提取所有键对的程序见
#aardio #cadence #代码块 #数据筛选