0

ファイルへのパスとファイル名を含む文字列が与えられ、パスのみを抽出したいという問題に直面しています (ファイル名なし)。

たとえば、次のようなものを受け取ります

C:\Users\OopsD\Projects\test.acdbd

その文字列からのみ抽出したい

C:\Users\OopsD\Projects

バックスラッシュの後に単語が続き、その後にドットが続き、別の単語が続く正規表現を作成しようとしていました-これは、

\test.acdbd

一部を空文字列に置き換えて、最終結果が

C:\Users\OopsD\Projects

正規表現に詳しい人は、これについて私を助けてくれますか? また、今後は正規表現を多用する予定です。正規表現を作成するためにダウンロードできる (無料の) プログラムはありますか?

4

2 に答える 2

0

探している正規表現は次のとおりです。

[^/]+$

ここで ^ (caret):、正規表現パターンが適用される文字列の先頭に一致します。文字ではなく位置に一致します。ほとんどの正規表現フレーバーには、改行後(つまり、ファイルの行の先頭)にカレットを一致させるオプションもあります。

$ (dollar):正規表現パターンが適用される文字列の最後に一致します。文字ではなく位置に一致します。ほとんどの正規表現フレーバーには、改行の前(つまり、ファイルの行の終わり)にドルを一致させるオプションもあります。文字列が改行で終了する場合も、最後の改行の前に一致します。

+ (plus):前の項目を1回以上繰り返します。貪欲なので、前のアイテムが1回だけ一致するまで、前のアイテムの一致が少ない順列を試す前に、できるだけ多くのアイテムが一致します。

詳細については、このリンクを参照してください。

多くの正規表現ソフトウェアとツールがそこにあります。それらのいくつかは次のとおりです。

  1. www.gskinner.com/RegExr/
  2. www.txt2re.com
  3. Rubular -Rubyだけのものではありません。
于 2013-02-10T10:46:57.723 に答える
0

単純なタスクなどに正規表現を使用する必要があると本当に確信していますか? これはどう:

Dim file As New IO.FileInfo(" C:\Users\OopsD\Projects\test.acdbd")
MsgBox(file.Directory.FullName)

Regex の無料プログラムに関しては、http: //www.gskinner.com/RegExr/を常に使用することをお勧めします。ただし、正規表現を使用する前に、常に代替案を検討する必要があります。

于 2013-02-10T14:01:36.983 に答える