在我的PHP脚本中,我想使用preg_replace替换值,跳过HTML标记<a>
和</a>
中的任何值。这些值包含在数组中,因此以下是在循环中运行的当前代码的片段:
$Used[$i] = preg_replace("~<a[^>]*>.*?</a\s*>(*SKIP)(*FAIL)|{$MatchFinal[$i]}~","{$MatchLinkFinal[$i]}", $value);
代码有效,但包含括号(
或)
的值除外。
例如,如果$MatchFinal[$i]
包含值Fatigue
,则会将其替换为包含链接的值$MatchLinkFinal[$i]
:<a>
... {{1} } ... Fatigue
。但是,如果<a>
包含值$MatchFinal[$i]
,则它不会替换它。
为什么包含括号的值未被替换?
注意:正在替换包含空格和/或撇号的值。
我试图逃避括号......
Hair (Dry)
和
$MatchFinal[$i] = str_replace("(", "\(", $MatchFinal[$i]);
...但我收到了一条错误消息:
$MatchFinal[$i] = str_replace(")", "\)", $MatchFinal[$i]);
答案 0 :(得分:3)
您需要preg_quote()
def determine_current_hour
current_time = Time.new
current_hour = current_time.hour
end
def greeting(name)
current_hour = determine_current_hour
if(current_hour > 3 && current_hour < 12)
time = "morning"
elsif(current_hour > 12 && current_hour < 18)
time = "afternoon"
elsif(current_hour > 18 || current_hour < 2)
time = "evening"
end
puts "Good #{time}, #{name.capitalize}!"
end
puts "What is your name?"
name = gets
greeting(name)