「Doc 16_1.pdf」のようなファイル名があり、その名前がpreg_matchであるかどうかをチェックする必要があります。一致する場合は、次の番号が 'Doc 16_2.pdf'一致する名前がアンダースコアの場合は
'/(?:(?: \(_[\d]+\))?(\.[^.]+))?$/'
$ name = 'Doc 16';私は上記するpreg_matchを試してみましたが、その一致する結果を返さない
protected function upcount_name_callback($matches) {
print_r($matches);
$index = isset($matches[1]) ? ((int)$matches[1]) + 1 : 1;
$ext = isset($matches[2]) ? $matches[2] : '';
$nm = '_'.$index.$ext;
return $nm;
}
のようなインクリメント
return preg_replace_callback(
/(?:(?: \(_[\d]+\))?(\.[^.]+))?$/,
array($this, 'upcount_name_callback'),
$name,
1
);
のようにチェック
イム。
私を助けてもらえますか、ありがとうございます。
たぶん、 ' '〜_ \ dは+ \ [^] + $〜''でしょうか? –
サンプル入力とは何ですか、希望の出力は何ですか? – delboy1978uk
いくつか例を挙げてもらえますか?私はそれが正しいと確信していません – Andreas