# 検索型番に対する処理
#   productcodeは、ファイル名から生成された型番
#   検索する際の型番を変更する、または追加する
#   戻り値は文字列配列であること

Param($productcode)

try
{
    $result = @($productcode)

    #総合Wikiでは型番のあいまい検索がないため、ABC-123の形式とABC123形式を両方検索する

    $productcode_base = ""
    $productcode_num = ""

    $productcoderegex = [regex]'([0-9]*[A-Za-z]+)[-_]?([0-9]+)'
    $matches = $productcoderegex.Matches($productcode)

    if($matches.Success)
    {
        # 英字の部分
        $productcode_base = $matches[0].groups[1].value.ToUpper()
        # 数字の部分
        $productcode_num = $matches[0].groups[2].value

        # ベース部分と数字部分を結合 (ABC-123とABC123)
        $result = @("$productcode_base-$productcode_num","$productcode_base$productcode_num")
    }
}
catch
{
    # 例外を起こしたら元に戻す
    $result = @($productcode)
}

return $result
