[英]Ruby pattern matching function not working
我从教程中复制了一段代码,在该代码中您输入了字符串和模式,并获得了带有字符串匹配部分的输出。
但是,它仅适用于文字模式,例如,我输入“ hello”和“ l”作为模式,输出为“ hello”,同时标记了两个ls。
但是,如果我输入“ hello”,并且说模式为“ l +”,则输出为普通的hello。
这是代码:
st = "\033[7m"
en = "\033[m"
while true
print "str> "
STDOUT.flush
str = gets
break if not str
str.chop!
print "pat> "
STDOUT.flush
re = gets
break if not re
re.chop!
str.gsub! re, "#{st}\\&#{en}"
print str, "\n"
end
print "\n"
怎么了?
你很亲密 在执行gsub
,您需要将re
括起来,例如: /#{re}/
这告诉搜索模式被解释为正则表达式,而不是字符串文字。 正如您现在定义的那样,您正在搜索模式l+
与正则表达式“字母l
1次或多次”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.