Ruby模式匹配函数不工作
我从一个教程中复制了一段代码,在这个教程中,您输入一个字符串和一个模式,然后您得到的输出中标记了字符串的匹配部分 然而,它只适用于文本模式,例如,我输入“hello”和“l”作为模式,输出为“hello”,并标记了两个ls 但是如果我输入“hello”,我说模式是“l+”,那么输出就是简单的hello 代码如下:Ruby模式匹配函数不工作,ruby,regex,Ruby,Regex,我从一个教程中复制了一段代码,在这个教程中,您输入一个字符串和一个模式,然后您得到的输出中标记了字符串的匹配部分 然而,它只适用于文本模式,例如,我输入“hello”和“l”作为模式,输出为“hello”,并标记了两个ls 但是如果我输入“hello”,我说模式是“l+”,那么输出就是简单的hello 代码如下: st = "\033[7m" en = "\033[m" while true print "str> " STDOUT.flush str = get
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+
vs正则表达式“字母l
1次或多次”