正则表达式检查Skus

时间:2012-05-10 20:54:04

标签: regex

如果sku中有OL,我需要将has_online设置为true,如果sku中有WB,则has_WB为tru,如果sku没有WB或OL,则has_classroom为true,否则匹配

if (preg_match('/^[0-9]{8}OL/', $sku))       $has_online      = true;
if (preg_match('/^[0-9]{8}WB/', $sku))       $has_WB          = true;
if (preg_match('/^[0-9]{8}[A-Z]{2}/', $sku)) $has_classroom   = true;

我遇到了has_classroom部分的问题。当它也是OL或WB课程时,它也会设置has_classroom。

Skus的格式如下:

20120531TXCP
20120531OLCP
20120531WBCP
20120531FLAO
20120531NVAR

我像这样重做它但对它不满意。

$wb_course = preg_match('/^[0-9]{8}WB/', $sku);
$ol_course = preg_match('/^[0-9]{8}OL/', $sku);
if ($ol_course)                                 $has_online      = true;
if ($wb_course)                                 $has_WB          = true;
if (preg_match('/^[0-9]{8}[A-Z]{2}/', $sku) 
    && !$wb_course 
    && !$ol_course)                             $has_classroom   = true;

任何可以帮助我正确认识到这一点的想法?

1 个答案:

答案 0 :(得分:1)

请尝试其他吗?

  if (preg_match('/^[0-9]{8}OL/', $sku))       $has_online      = true;   
  else if (preg_match('/^[0-9]{8}WB/', $sku))       $has_WB     = true;   
  else if (preg_match('/^[0-9]{8}[A-Z]{2}/', $sku)) $has_classroom   = true;