将字符串(包括正则表达式参数)传递给代码块
The passing of a string (incl. regex parameters) to a block of code
需要按以下格式返回长度为4个字母或以上的字符串:
"#{firstLetter}#{string.length-2}#{lastLetter}"
InputString = Whosebug
预期字符串 = s11w
这是产生正确预期输出的代码。
string.gsub /(\w)(\w+{2})(\w)/ do |word|
"#{}#{word.length-2}#{}"
end
我有点明白这里发生了什么,但不明白正则表达式与 $1 和 $3 的使用之间的确切关系。有点明白了……但还不足以以我自己的方式使用它来解决新问题。
在您的正则表达式中,您有 3 个捕获组:\w
、\w+{2}
和 \w
。当您稍后说 $N
(其中 N
是某个数字)时,您实际上指的是正则表达式中的捕获组。
String#gsub
方法会为您填充这些变量 (Ruby doc)。
需要按以下格式返回长度为4个字母或以上的字符串:
"#{firstLetter}#{string.length-2}#{lastLetter}"
InputString = Whosebug
预期字符串 = s11w
这是产生正确预期输出的代码。
string.gsub /(\w)(\w+{2})(\w)/ do |word|
"#{}#{word.length-2}#{}"
end
我有点明白这里发生了什么,但不明白正则表达式与 $1 和 $3 的使用之间的确切关系。有点明白了……但还不足以以我自己的方式使用它来解决新问题。
在您的正则表达式中,您有 3 个捕获组:\w
、\w+{2}
和 \w
。当您稍后说 $N
(其中 N
是某个数字)时,您实际上指的是正则表达式中的捕获组。
String#gsub
方法会为您填充这些变量 (Ruby doc)。