当我这么做的时候
> "fooo".gsub("o") {puts "Found an 'o'"}
Found an 'o'
Found an 'o'
Found an 'o'
=> "f"
gsub删除了所有的'o'。这是如何工作的?
我认为gsub将每个字符传递给块,但是由于块对字符本身没有任何作用(比如捕捉它),所以它被删除了。
我认为这是因为,当我这么做
> "fooo".gsub("o"){|
假设我有一根这样的绳子。
string = "This is just an {example} of a string. {Quite} boring."
在代码的某个时候,我想使用一个函数来用其他的东西来替换花括号之间的单词。我在手册中穿插了一下,想出了这个解决方案。
function stringModify(a)
return string.gsub(a, '{(.-)}', stringDecide("%1"))
end
function stringDecide(a)
if a == "example" th
下面的代码使用正则表达式(键)和替换项(值)定义哈希。然后,它遍历散列并相应地替换字符串。
简单的字符串替换工作得很好,但是当我需要在替换它之前计算resut时(几年到几天的情况下),它不能。关键是要预先定义散列。
我遗漏了什么?任何帮助都将不胜感激。
a = "After 45 years we cannot use this thing."
hash = {
/(\d+) years/ => "#{$1.to_f*2}" + ' days',
/cannot/ => 'of course we CAN&
我正在尝试更正一段代码,当从FIX tag 1发送一个值时,示例1=AB_123删除_然后将新标记处理为AB123
下面是一些更静态的东西,但我希望它更动态,并始终删除帐户1中的"_“
Acct = GetValue(1)
if string.find(Acct, "AB_123") then
newAcct = AB123
return newAcct
else
return PASS
end
我正在尝试编写一个正则表达式,将文件中出现的一个或多个'+‘符号替换为空格。我尝试了以下几种方法:
echo This++++this+++is+not++done | awk '{ sub(/\++/, " "); print }'
This this+++is+not++done
期望值:
This this is not done
你知道为什么这个方法不起作用吗?