ruby的一段代码$1,$2……这些是什么意思呢?菜鸟求教啊!

Python012

ruby的一段代码$1,$2……这些是什么意思呢?菜鸟求教啊!,第1张

题主应该是对这个有疑问 digit4 = $2 || "1", 这句的意思是 如果$1不为nil,则执行这句,重点是在$2不为nil的时候,digit4=$2,这个||是一个逻辑运算符,前面为真就直接返回结果,所以就把$2直接返回了,上面描述的情况对应于这样的输入 p han2num("千八百二十三")题主可以好好看看,如有问题请再联系我,祝顺利!

(1)创建:简单地用//即可创建,也可也用re = Regexp.new("正则表达式"),创建

(2)匹配:正则表达式 =~ 字符串,匹配成功返回字符串位置,不成功返回nil,可也用!~表示不匹配

(3)正则表达式选项:imx,i:忽略大小写、m可以匹配多行,x正则表达式中可以有空格、#注释,不会当成要匹配的内容。如 /NiHao/i =~ "nihao" 返回0

(4)捕获:用(),打印第几个捕获可以用 p $1,$2……,$&表示匹配整个正则表达式的字串部分。&` 返回原字符串匹配部分之前的字符串,&' 返回原字符串中匹配部分之后的字符串

(5)正则替换:sub替换一次,gsub全部替换。scan不替换,但是可以像gsub一样找到全部能匹配的部分,用来对其进行处理

*nix系系统:

ES(Unix)

例子: IvS7aeT4NzQPM

说明:Linux或者其他linux内核系统中

长度: 13 个字符

描述:第1、2位为salt,例子中的'Iv'位salt,后面的为hash值

系统:MD5(Unix)

例子:$1$12345678$XM4P3PrKBgKNnTaqG9P0T/

说明:Linux或者其他linux内核系统中

长度:34个字符

描述:开始的$1$位为加密标志,后面8位12345678为加密使用的salt,后面的为hash

加密算法:2000次循环调用MD5加密