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 高通安卓11提取完整线刷包软件,或者优博讯dt50顺丰刷机包
  • ¥20 C,有个译码器,换了信道就跑不出原来数据
  • ¥15 MIMIC数据库安装问题
  • ¥60 基于JTag协议开发Fpga下载器上位机,哪位大🐂有偿指导?
  • ¥20 全书网Java爬取数据
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
  • ¥15 STM32串口接收问题
  • ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接