在 if 语句条件中使用正则表达式
2022-08-30 15:13:02
我试图得到一个php if语句来拥有规则,如果一个集合变量等于“view-##”,其中#表示任何数字。使用该条件设置 if 语句的正确语法是什么?
if($variable == <<regular expression>>){
$variable2 = 1;
}
else{
$variable2 = 2;
}
我试图得到一个php if语句来拥有规则,如果一个集合变量等于“view-##”,其中#表示任何数字。使用该条件设置 if 语句的正确语法是什么?
if($variable == <<regular expression>>){
$variable2 = 1;
}
else{
$variable2 = 2;
}
使用功能: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];
}
您应该使用preg_match。例:
if(preg_match(<<regular expression>>, $variable))
{
$variable1 = 1;
}
else
{
$variable2 = 2;
}
如果您只执行赋值,则还要考虑三元运算符:
$variable2 = preg_match(<<regular expression>>, $variable) ? 1 : 2;