找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10373|回复: 6

[脚本] 请教pick截取后面一部分怎么写

[复制链接]
发表于 2019-10-1 09:16:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 xuxi3201 于 2019-10-1 09:22 编辑

已经获取到数据,比如,
123/678
12345/67890
请问,如何截取 / 后面的数据给变量
:local aaa 123/678
:local bbb [:pick ]
我希望bbb是 678
我希望bbb是 67890
.
请教pick截取后面一部分怎么写
谢谢

routeros
发表于 2019-10-1 12:19:13 | 显示全部楼层
本帖最后由 cspm333 于 2019-10-1 12:31 编辑

#宣告字串
:local aaa "123456789"

#打印aaa左起第3個字元
/put [:pick $aaa 3]
但注意計算機的計數起始是0,而非一般認知的1,所以實際計數是3+1,
打印時印出的值是4

#打印aaa左起3-7的字元
/put [:pick $aaa 3 7]
起始端抓的值同上,計數起始從0開始,所以打印會從4開始打印;
但結束端計數卻是從1開始,並非從0開始計數,也就是結束打印時同7沒有改變。
所以本次的打印結果為4567
routeros
回复

使用道具 举报

 楼主| 发表于 2019-10-1 13:10:02 | 显示全部楼层
本帖最后由 xuxi3201 于 2019-10-1 23:06 编辑

cspm333 每次你都帮忙。。
我这次是为了查询,网络流量大的用户。
已经搞定。

感谢!

routeros
回复

使用道具 举报

发表于 2019-10-1 20:43:02 | 显示全部楼层

:local aaa "abcdefgh"
/put [:pick $aaa  3 [:len $aaa]]
假如要打印aaa第3個字元 至字串末,用上述腳本會打印出defgh
機械與人的計數方式還是有差異的...

                               
登录/注册后可看大图


所以您可更改下面方式打印:
/put [:pick $aaa  (3-1) [:len $aaa]]
這樣就能依人類的方式計數,從第3 至字串末,正確打印出cdefgh


routeros
回复

使用道具 举报

发表于 2019-10-4 14:33:43 | 显示全部楼层
经常看到楼主的索取

  1. {
  2. ##www.ros.sh
  3. :put "www.ros.sh"
  4. :local test
  5. :local aaa 123/678
  6. :local bbb 123/67890
  7. :set test [:pick $aaa ([:find $aaa "/"]+1) [:len $aaa]]
  8. :put $test
  9. :set test [:pick $bbb ([:find $bbb "/"]+1) [:len $bbb]]
  10. :put $test
  11. }
复制代码
routeros
回复

使用道具 举报

 楼主| 发表于 2019-10-4 20:19:28 | 显示全部楼层
谢谢  47771885


我是 索取,
在 cspm333 给我答案后,我已经把我的想法私聊给他了,
我也是分享。
routeros
回复

使用道具 举报

 楼主| 发表于 2019-10-4 20:23:24 | 显示全部楼层
补充一下,
你看懂了 我要的东西,他没有看懂。
19-10月2日,我根据他的回答已经写好了,
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-4-26 13:43 , Processed in 0.074097 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表