我正在尝试获取php if语句以获得规则,其中如果set变量等于“view - ##”,其中#表示任何数字。设置具有该条件的if语句的正确语法是什么?
if($variable == <<regular expression>>){
$variable2 = 1;
}
else{
$variable2 = 2;
}
答案 0 :(得分:35)
使用preg_match()
功能:
if(preg_match("/^view-\d\d$/",$variable)) { .... }
[编辑] OP另外询问他是否可以隔离这些数字。
在这种情况下,您需要(a)在正则表达式的数字周围放置括号,并(b)将第三个参数添加到preg_match()
。
第三个参数返回正则表达式找到的匹配项。它将返回一个匹配数组:数组的元素零将是整个匹配的字符串(在您的情况下,与输入相同),数组的其余元素将匹配表达式中的任何括号集。因此$matches[1]
将是您的两位数字:
if(preg_match("/^view-(\d\d)$/",$variable,$matches)) {
$result = $matches[1];
}
答案 1 :(得分:4)
您应该使用preg_match。例如:
if(preg_match(<<regular expression>>, $variable))
{
$variable1 = 1;
}
else
{
$variable2 = 2;
}
如果您只是在做作业,请考虑ternary operator:
$variable2 = preg_match(<<regular expression>>, $variable) ? 1 : 2;