繁体   English   中英

Ruby模式匹配功能不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM