- ベストアンサー
C#での文字抜き出し正規表現について
C#にて、ファイルパスの中間部分だけを取り出す方法を考えておりますが、苦慮しております。 「C:\xxx\yyy\zzz.exe」の「yyy」だけ取り出す正規表現を教えてください。
- みんなの回答 (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#は使ってなかったので配列とかに間違いあるかもしれません(テストしてないので…)
お礼
非常に助かりました。 正規表現以外に、Splitがありましたね。 ありがとうございます。