创建对象时如何包含此正则表达式?

How do I include this regular expression when creating an object?

在我的 $plates = explode(';', $plates); 之后,我想在创建新的 $dossier 时包含另一个正则表达式(在我的 foreach 中):

$minus = preg_replace('~[-]~', '', $license_plates);

我该怎么做?

这是我的代码:

public function addLicensePlates(Request $request)
{            
    $product_id = $request->input('product_id');

    $license_plates = $request->input('license_plates');

    $plates = preg_replace('~\s+|[.,:;*/_]~', ';', $license_plates); // \s+|[.,:;*/_]

    $plates = explode(';', $plates);

    foreach($plates as &$plate) {
        $dossier = new Dossier;
        $dossier->license_plate = trim($plate);
        $dossier->product_id = $product_id;
        $dossier->save();
    }
}

PS:我不想将 - 添加到 $plates 表达式,而是在爆炸之后。

我建议按如下方式编辑现有功能:

  • preg_replace稍后在输入字符串上使用 trim() 以摆脱空值
  • 稍后在 foreach 块中使用 str_replace 替换连字符。

参见 PHP demo:

$license_plates = "  WORD-HERE 36-LXD-5";
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', trim($license_plates)); // trim the incoming value
$plates = explode(';', $plates);
foreach($plates as &$plate) {
    $license_plate = str_replace('-', '', $plate); // Remove hyphens
    echo $license_plate. "\n";
}

输出:WORDHERE36LXD5