0

次のようなパターンがあります。

文書データ/ファイル名.xyz

「ファイル名」のみを返す正規表現を作成しようとしています。「xyz」のみを提供するものがありますが、それは機能し、「Filename.xyz」を提供するものもありますが、ファイル名を取得するためにxyzを切り落とすのに問題があります。

[^/]+$"Filename.xyz" \[^.]+$にくれますxyz

私は正規表現の人ではないので、どんな助けも素晴らしいでしょう! ありがとう!

4

3 に答える 3

1

先読みを使用してみてください(?=...):

/[^\/.]+(?=\.[^.]+$)/

先読みはチェックのみを実行し、その後に何も一致しないことを意味します。

于 2013-08-23T14:10:25.183 に答える
0

2 つを組み合わせて、最初の部分をキャプチャ グループにラップします。

"document_data/Filename.xyz".match(/([^/]+)\.[^.]+$/)[1]
于 2013-08-23T14:11:33.030 に答える
0

それが役に立てば幸いです(参照:http://planetozh.com/blog/2008/04/javascript-basename-and-dirname/

    function basename(path) {
        return path.replace(/\\/g,'/').replace( /.*\//, '' ).replace( /\..*/, '' );
    }
于 2013-08-23T14:14:46.123 に答える