dpswo40440 2018-08-16 15:10
浏览 28
已采纳

如何编写此正则表达式与preg_match一起使用?

I have a series of keywords I want to match against an item name to determine if it is a labor line item or not. How can I write the pattern regex so it matches them all in a more succinct block of code?

if(preg_match('/(LABOR)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(SERVICES)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Pull and Prep)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Supervision)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Coordination)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Disposal)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Handling)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Inspect)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Re-ship)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Storage)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Management)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Show Form)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Receive)/i', $Item[Name])){        
    $subtotal += $mysubtotal;
}elseif(preg_match('/(Paperwork)/i', $Item[Name])){
    $subtotal += $mysubtotal;
}
  • 写回答

4条回答 默认 最新

  • dongpao1926 2018-08-16 15:17
    关注

    The pipe, |, with preg_replace and its fifth parameter should be all you need.

    preg_replace('/LABOR|SERVICES|Pull and Prep|Supervision|Coordination|Disposal|Handling|Inspect|Re-ship|Storage|Management|Show Form|Receive|Paperwork/i', '', $Item['Name'], -1, $subtotal);
    

    You might want to use word boundaries as well so you know that it is an exact match (unless laboring, labors, etc are valid?):

    preg_replace('/\b(?:LABOR|SERVICES|Pull and Prep|Supervision|Coordination|Disposal|Handling|Inspect|Re-ship|Storage|Management|Show Form|Receive|Paperwork)\b/i', '', $Item['Name'], -1, $subtotal);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题