繁体   English   中英

在if语句条件中使用正则表达式

[英]using regular expressions in if statement conditions

我试图获得一个php if语句,如果一个set变量等于“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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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