Ruby中使用字符串#gsub的句子替换
如果我只是想改变一个单词的一部分呢?像“Car”到“cah”,或者反之亦然,在“Martha”到“Marther”。在第二种情况下,如果我只是这样做一个if:Ruby中使用字符串#gsub的句子替换,ruby,string,gsub,string-substitution,Ruby,String,Gsub,String Substitution,如果我只是想改变一个单词的一部分呢?像“Car”到“cah”,或者反之亦然,在“Martha”到“Marther”。在第二种情况下,如果我只是这样做一个if: <if sentance.include? "er" user_input.gsub!(/er/, "a") end > “玛莎”中的所有“a”都需要,这不是我想要的 有什么想法吗? 其他例子。 您的示例和代码显示了完全相反的结果。假设要将Martha的最后一个“a”替换为“er”,则应将字符串末尾的“a”替换
<if sentance.include? "er"
user_input.gsub!(/er/, "a")
end >
“玛莎”中的所有“a”都需要,这不是我想要的
有什么想法吗?
其他例子。
您的示例和代码显示了完全相反的结果。假设要将Martha的最后一个“a”替换为“er”,则应将字符串末尾的“a”替换为:
user_input.gsub!(/a$/,'er')
如果字符串是“玛莎在哪里,比利鲍勃?”:
\b是单词的结尾或开头匹配符如果
str=“玛莎,比利鲍勃在哪里?”
,您可能需要类似str.gsub(/(?“玛莎,比利鲍勃在哪里?”
)(?你需要更好地定义你的语法,以及完成这些转换的规则。这只是最后一个a
?crow笑话很棒。基本上,我的目标是构建一个从基本speach到新英格兰口音的文本输入转换器。所以使用这些规则,我只关心单词的结尾,特别是单词that end in As或ERs-在方言中是swap。a$可能有效,但在行尾意味着什么?它是在字符串中搜索以As结尾的单词吗?还是只取字符串中的最后一个单词?还是a\z?请注意,a$
是行尾,而不一定是字符串的结尾(即a\z
)。在这种情况下,这可能无关紧要,但在其他情况下(如数据验证),这可能是一个安全漏洞,因此最好注意。
user.gsub!(/a\b/,'er')