• ベストアンサー

C#での文字抜き出し正規表現について

C#にて、ファイルパスの中間部分だけを取り出す方法を考えておりますが、苦慮しております。 「C:\xxx\yyy\zzz.exe」の「yyy」だけ取り出す正規表現を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

正規表現でなくてすみません。 string filepass = "C:\\xxx\\yyy\\zzz.exe"; string[] dir = filepass.Split(new char[]{'\'}); 結果 dir[0] = "C:" dir[1] = "xxx" dir[2] = "yyy" dir[3] = "zzz.exe" こういう手法でしたら、"C:\xxx\aaa\yyy\zzz.exe"でも"c:\xxx\yyy\aaa\zzz.exe"あっても、配列の長さから計算してyyyを取得できますしいいかと思いましたけど。 dir[0]がドライブパス。 dir[dir.length]が一番最後と分かりますし。 c:\xxx\yyy\zzz.exeという構造が固定なら、後方から正規表現で\yyy\の範囲を当てればyyyはとれますが、ディレクトリの状況によってしまうので、zzz.exeの一つ前のディレクトリを知りたい時以外は使えないかと。 あとは(?<!:)\\とやって、ドライブ直下のディレクトリを出さないとかでxxx\yyyのyyyは取れます。 最近C#は使ってなかったので配列とかに間違いあるかもしれません(テストしてないので…)

参考URL:
http://msdn.microsoft.com/ja-jp/library/b873y76a(v=vs.80).aspx
corosuke2s
質問者

お礼

非常に助かりました。 正規表現以外に、Splitがありましたね。 ありがとうございます。

関連するQ&A