我是php开发人员,将ruby脚本转换为PHP,我无法在任何地方找到这种语法。请帮助我理解它的含义。
var1 = "" if self.title.match(/(#{var1})/i)
答案 0 :(得分:1)
这意味着如果""
匹配由self.title
进行插值的正则表达式,它应返回空字符串#{var1}
,/i
表示它不区分大小写。
答案 1 :(得分:1)
首先,
greeting = "Hello"
puts "#{greeting} world"
--output:--
Hello world
所以#{..}构造允许你将变量插入到字符串中 - 它比php的$ variable插入字符串更冗长,但这就是它的方式。在ruby中,您还可以将任意表达式插入到字符串中:
puts "1 + 2 = #{1+2}"
--output:--
1 + 2 = 3
def get_greeting
"Goodbye"
end
puts "#{get_greeting} world"
--output:--
Goodbye world
以下是您的示例:
title = "HELLO"
var1 = "hello"
var1 = "" if title.match(/(#{var1})/i)
puts "--->#{var1}<--"
--output:--
---><--
......相当于:
title = "HELLO"
var1 = "hello"
if title.match(/(#{var1})/i)
var1 = ""
end
puts "--->#{var1}<--"
--output:--
---><--
......相当于:
title = "HELLO"
var1 = "hello"
if title.match(/(hello)/i)
var1 = ""
end
puts "--->#{var1}<--"
--output:--
---><--
请注意,您可以使用#{...}构造将变量插入到正则表达式中。