还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧。

Ruby字符串中存在chop和chomp的内置函数。我在http://www.w3cschool.cc/ruby/ruby-string.html中得到的关于Ruby字符串chop和chomp的用法介绍如下:

str.chomp
从字符串末尾移除记录分隔符($/),通常是 \n。如果没有记录分隔符,则不进行任何操作。
str.chomp!
与 chomp 相同,但是 str 会发生变化并返回。
str.chop
移除 str 中的最后一个字符。
str.chop!
与 chop 相同,但是 str 会发生变化并返回。

单从这几句话,还是有些不明白(貌似借鉴于perl语言中的chop和chomp函数的用法),然后百度了一下,我在http://blog.chinaunix.net/uid-20691105-id-1568659.html得到如下内容:

chomp和chop的区别:
chomp:去掉字符串末尾的\n或\r
chop:去掉字符串末尾的最后一个字符,不管是\n\r还是普通字符
"hello".chomp            #=> "hello""hello\n".chomp          #=> "hello""hello\r\n".chomp        #=> "hello""hello\n\r".chomp        #=> "hello\n""hello\r".chomp          #=> "hello""hello".chomp("llo")     #=> "he"
"string\r\n".chop   #=> "string""string\n\r".chop   #=> "string\n""string\n".chop     #=> "string""string".chop       #=> "strin"

我在本机逐个尝试上面的字符串,并且输出,得到如下所示:

首先,可以看到print是不输出换行符的(不会自动换行),但是会解析双引号中的转义字符,可以看到print输出了字符串中的换行符\n和回车符\r。我之前有点迷惑的是“\r\n”,“\n\r”这两个前后顺序不同时,chop和chomp函数是如何处理的。从运行的结果看,当字符串最后面跟的是“\r\n”时,”\r\n”都会被去掉,而当字符串最后面跟的是”\n\r”时,只会去掉回车符。好吧,总算是明白了。

转载于:https://www.cnblogs.com/hiccup/p/4297935.html

Ruby中的chop和chomp用法辨析相关推荐

  1. ruby中Thor用法雷神介绍,MyCLI < Thor详细介绍

    作者:小白蒋,个人博客:www.nihao070.cn ruby中thor详细用法 ruby中Thor是什么? 第一点:公共方法变成命令 第二点:你也可以使用Ruby的可选参数使CLI参数可选 第三点 ...

  2. 在Ruby中获取system()调用的输出

    本文翻译自:Getting output of system() calls in Ruby 如果我在Ruby中使用Kernel#system调用命令,我该如何获得它的输出? system(" ...

  3. [2]rubyruby on rails入门笔记---Ruby中的异常

    Ruby中异常处理非常的重要,Ruby中异常处理,包括Exception 捕获,Retry,Raise,ensure ,Else格式,Throw...Catch已经类级别的异常.其具体格式和用法如下. ...

  4. Ruby中的设计模式——《松本行弘的程序世界》

    < 设计模式 > 一书是用C++ 和 Smalltalk 介绍模式实例的.看了那些例子,大家都会感觉到,绝大多数的模式用 Smalltalk 实现起来非常简单.这是为什么呢? 因为Smal ...

  5. 如何检查字符串是否包含Ruby中的子字符串?

    我有一个字符串变量,内容如下: varMessage = "hi/thsid/sdfhsjdf/dfjsd/sdjfsdn\n""/my/name/is/balaji.s ...

  6. Ruby中的多行注释?

    如何在Ruby中注释多行? #1楼 =begin (some code here) =end 和 # This code # on multiple lines # is commented out ...

  7. ruby中、.reject_Ruby中带有示例的Array.reject方法

    ruby中..reject Ruby Array.reject方法 (Ruby Array.reject Method) In the last article, we have seen how w ...

  8. (Ruby)Ruby中区块用的一些潜藏关键字

    也许是我看的书并不系统,而且是在这本书上看几个章节,在另外一本书上看了其他几个章节,以致获取到的知识有时候没有连续性. 最近在琢磨Ruby中的迭代和C#中迭代的写法以及用法上的一些异同,发现了&quo ...

  9. Ruby中的字符串与符号

    原文引用:http://blog.csdn.net/besfanfei/article/details/7966987 初学Ruby的时候,往往对字符串(String类)与符号(Symbol)这两种变 ...

最新文章

  1. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
  2. SPSS单一样本的T检验
  3. AKKA框架持久化入门样例
  4. ubuntu下vscode调试开发踩过的坑
  5. python高斯函数表达式_Python实现高斯函数的三维显示方法
  6. ansible模块---续
  7. oracle中ocr和asm的关系,迁移OCR和VotingDisk并删除原ASM磁盘组
  8. HDU5812 Distance(枚举 + 分解因子)
  9. 企业是否应该实现对客户需求的快速响应_如何做好企业服务?
  10. 【计算机心理学】先设计再实现 在实现中完善设计
  11. AM335 嵌入式 linux,am335x开发板建立嵌入式 Linux NFS 开发环境
  12. 特征值分解、奇异值分解、PCA概念整理(转载)
  13. day27:三剑客之sed
  14. spring3,上传文件ApplicationHttpRequest cannot be ca...
  15. 老段工作室成立两周年
  16. MySQL数据监控案例_zabbix 监控多实例mysql
  17. 中文语音软件再次升级,即将发布百度语音助手
  18. x64dbg入门学习
  19. APP产品经理(一)
  20. JavaScript实现拖动图片到指定位置验证码

热门文章

  1. FBX导入虚幻5_详解
  2. 开源CMS系统列表-转自Wikipedia
  3. vue 纸牌游戏_Vue制作的纸牌
  4. 网易严选ServiceMesh实践
  5. 2022-05-10 实现一个可拖拽的弹出登录框
  6. 如何提升短视频的质量?几个小技巧来帮忙,让你事半功倍
  7. 现代密码学--结课论文---《70年代公钥传奇》
  8. android字体加粗的方法
  9. SpringCloud(下)
  10. 20210308CC