%{String} 用于创建一个使用双引号括起来的字符串
%Q{String} 用于创建一个使用双引号括起来的字符串
str=<<END_OF_STRING
a string
END_OF_STRING
%Q!Some String of “Characters”! <==> ” Some String of /”Characters/” “
%q{String} 用于创建一个使用单引号括起来的字符串
%q!Some String of “Characters”! <==> ‘Some String of Characters’
%r{String} 用于创建一个正则表达式字面值
%r{/usr/bin/} <==> ///usr//bin///
%w{String} 用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换
%W{String} 用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换
%W(North South East West) <==> ["North", "South", "East", "West"]
%s{String} 用于生成一个符号对象
%x{String} 用于执行String所代表的命令
%x{ ls /usr/local } <==> `ls /usr/local`
PS:上面几个%表示法中用{}扩住了String,其实这个{} 只是一种分割符,可以换成别的字符,比如(),那么%表示法就是%(String),当然还可以是别的字符,对于非括号类型的分割符,左右两边要相同, 如%!String!
下面我对这些表示法简单举几个例子:
%{String}用于创建一个使用双引号括起来的字符串
这个表示法与%Q{String}完全一样,这边直接句个例子看结果:
1. result = %{hello}
2. puts "result is: #{result}, Type is:#{result.class}"
结果: result is: hello, Type is:String
%Q{String}用于创建一个使用双引号括起来的字符串
%q{String}用于创建一个使用单引号括起来的字符串
从说明中可以看出这两个表示法的区别就是一个使用双引号,一个使用单引号。使用双引号的字符串会对字符串中的变量做较多替换,而单引号则做较少的替换,具 体看例子。先看%Q{String}:
1. world = "world"
2. result = %Q{hello #{world}}
3. puts "result is: #{result}, Type is:#{result.class}"
结果: result is: hello world, Type is:String
换成%q{String}:
1. world = "world"
2. result = %q{hello #{world}}
3. puts "result is: #{result}, Type is:#{result.class}"
结果:
result is: hello #{world}, Type is:String
从上面的结果可以看出,较少替换的情况下,#{world}被解析成了字符串,而不会去计算这个变量中的值。
%r{String}用于创建一个正则表达式字面值
就像使用/reg/方式一样,看代码:
1. result = %r{world}
2. puts result =~ "hello world"
3. puts "result is: #{result}, Type is:#{result.class}"
结果: 6
result is: (?-mix:world), Type is:Regexp
可以看出,world从第6个字符开始匹配
%w{String}用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换
%W{String}用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换
这两个应该是大家见过最多的,用这个方式构造数组,可以省下一些逗号,Ruby真 是会惯坏大家,以后大家都不用标点符号了。
同样给一个简单的例子:
1. result = %w{hello world}
2. puts "result is: #{result}, Type is:#{result.class}, length is:#{result.length}"
结果: result is: helloworld, Type is:Array, length is:2
%s{String}用于生成一个符号对象
直接先上代码:
1. result = %s{hello world}
2. puts "result is: #{result}, Type is:#{result.class}"
3. sym = :"hello world"
4. puts "the two symbol is the same: #{sym == result}"
结果:
result is: hello world, Type is:Symbol
the two symbol is the same: true
可以看出,这两中方式生成的symbol对象完全一样
%x{String}用于执行String所代表的命令
比如:
%x{notepad.exe}可以启动windows下的记事本,这里我就不列结果了(那是一个大家熟悉的窗口)
分享到:
相关推荐
Stringex 一些实用的Ruby字符串扩展类
Ruby将字符串像数字一样处理.我们用单引号(‘…’)或双引号(…)将它们括起来. ruby> abc abc ruby> ‘abc’ abc 单引号和双引号在某些情况下有不同的作用.一个由双引号括起来的字符串允许字符由一个前置的斜杠...
Ruby 字符串对决这是什么? 这个存储库包含一个用于 A/B 测试 Ruby 代码性能的测试工具,以及一些比较双引号和单引号字符串性能的测试。如何运行测试先决条件: Ruby(这是基于 Ruby 版本 2.2.0,但其他版本应该可以...
本资源是ruby代码,提供了一系列封装好的函数,用于快速进行转换,一个函数搞定,包括如下转换,二进制字符串与hex字符串的互转。二进制字符串与整数互转,包括uint8,uin16,uint32, 以及本地字节序和网络字节序两种...
String Foundation是一个Ruby库,为Ruby字符串类提供有用的方法。目录是象征长度法等于少于小于或等于比...更棒大于或等于可转换方法整数浮到TrueClass / FalseClass 用方法删除前导零(零填充) 转换方法到True...
一、字符串操作 字符串插值 1.#{}: 任意放置在#{}中的合法Ruby代码都将被求值,并被替换为求值结果插入到原位置 2.单引号与双引号差别: 双引号允许字符转义,单引号不允许转义,里是什么字符,用户看到的就是什么字符...
这个 gem 返回与给定字符串关联的所有块。 Unicode 版本: 13.0.0 (2020 年 3 月) 支持的Ruby:3.0,2.7,2.6,2.5 可能仍然有效的旧Ruby: 2.4 、 2.3 、 2.2 、 2.1 、 2.0 文件 gem "unicode-blocks" 用法...
更改字符串颜色 更改字符串背景 改变弦效果 显示颜色样本 禁用着色 用法 require 'colorize' String . colors # return array of all possible colors names String . modes # return array of all possible modes ...
检索字符串所属的。 还可以返回Script_Extension属性,该属性定义为“通常与多个脚本一起使用,但脚本数量有限”的字符。 Unicode 版本: 13.0.0 (2020 年 3 月) 支持的Ruby:3.0,2.7,2.6,2.5 可能仍然有效...
to_lang是一个Ruby库,它在Google Translate API的支持下将语言翻译方法添加到字符串和数组中。 安装 只需运行: gem install to_lang 用法 要使用to_lang ,需要使用该库,然后使用您的Google Translate API密钥...
门司寺 在String中添加很棒的方法来格式化浪费空间和宽度。 安装 将此行添加到您的应用程序的Gemfile中: gem 'mojimoji' 然后执行: $ bundle 或将其自己安装为: $ gem install mojimoji ...
一种用于将字符串转换为标题的方法。 它扩展了 String 类; 目前只支持英文。 如果您精通其他语言,请使用冠词、连词和介词做出贡献。 Headingify 基于芝加哥风格手册中规定的语法规则。 编。 16 页8.155。 下载...
1.返回字符串的长度 代码如下: str.length => integer 2.判断字符串中是否包含另一个串 代码如下: str.include? other_str => true or false “hello”.include? “lo” #=> true “hello”.include? “ol” #=>...
RubyToggleString Sublime Text 2插件可切换Ruby String文字(例如“ foo” =>'foo'=>%Q {foo})。 安装 $ cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages ... :切换字符串和符号
最近有个需求,需要根据一个字符串当作一个类来使用,例如: 有一个字符串 “ChinaMag”,根据这个字符串调用 类 ChinaMag下的方法。 解决办法: 1.rails可以使用 constantize方法。 代码如下: pry(main)> ...
Unicode字符串调试帮助
Fuzzy-string-match是用于ruby的模糊字符串匹配库。 很快(用RubyInline用C编写) 它仅支持Jaro-Winkler距离算法。 该程序是从Lucene 3.0.2手动移植的。 (lucene是Java产品) 如果要添加其他字符串距离算法,...
GeoPattern - 从字符串创建漂亮的生成几何背景图像
如果需要内放置一个单引号,单引号的字符串文字,在它前面加上一个反斜杠Ruby解释器不认为终止字符串: 'Won\'t you read O\'Reilly\'s book?' 反斜杠也可以转义另一个反斜杠,这样第二个反斜杠本身不是解释为转义...
原文地址:http://www.davidflanagan.com/2009/08/string-multipli.html原作者:David Flanagan在Ruby中,“*”操作符用一个字符串作为左边参数,一个数字作为右边参数,来实现字符串重复。例如,”Ruby” * 2 的值...