0

私のプログラムは、ネットワーク ドライブにあるファイル名とフォルダ名の両方を含む文字列リストを読み取ります。

リストに含めることができるものの例を次に示します。

\\NETWORKDRIVE\text1.txt
\\NETWORKDRIVE\\text2.txt
\\NETWORKDRIVE\foldername\text3.txt
\\NETWORKDRIVE\\
\\NETWORKDRIVE\
\\NETWORKDRIVE

ネットワーク ドライブ名のみ (先頭の「\」文字を含む) を返す正規表現が必要です。

さまざまな正規表現を試しましたが、ほとんど機能するものを見つけました。これが私が現在持っているものです:

^(\\+)(.*?)(\\+)

この正規表現には 2 つの問題があります。

最初の問題は、ネットワーク ドライブ名と末尾の「\」文字が一致することです。2 つ目の問題は、ネットワーク ドライブ名が「\」文字で終わらない場合、先頭の「\」文字のみに一致することです。

実証する私の結果は次のとおりです。

\\NETWORKDRIVE\text1.txt => \\NETWORKDRIVE\
\\NETWORKDRIVE\\test2.txt => \\NETWORKDRIVE\\
\\NETWORKDRIVE\foldername\text3.txt => \\NETWORKDRIVE\
\\NETWORKDRIVE\\ => \\NETWORKDRIVE\\
\\NETWORKDRIVE\ => \\NETWORKDRIVE\
\\NETWORKDRIVE => \\

ご覧のとおり、必要な結果が得られていません。私は単に結果を次のようにしたいだけです:

\\NETWORKDRIVE

すべての場合に。

正規表現を修正および/または変更して、必要なことを行うのを手伝ってくれる人はいますか?

どうもありがとうございました。

4

1 に答える 1

1

これを使用できます:

^\\{2}[^\\]+

[^\\]バックスラッシュを除くすべての文字を意味します

于 2013-07-20T06:13:45.853 に答える