• ベストアンサー

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

  • 秀丸で正規表現を使って置換

    あるファイルに関して、このような置換を行いたいです。 abc/xxx,yyy,zzz.html ↓ abc/xxx.html xxxとyyyとzzzはある任意の文字列(英数字で文字数はばらばら)で 「abc/」と「,」と「.html」は固定の文字列になります。 そこで、秀丸で開いて、正規表現による検索で、 「abc/.*,.*,.*.html」 として検索すると、該当部分が検索できることがわかりましたが、置換後をどのように設定すればいいのかわかりません。 置換後のabc/xxx.htmlの「xxx.html」の部分は検索前の任意の文字列をそのまま残したいのです。 秀丸の置換機能でこのようなことは可能でしょうか? 正規表現に関してあまり詳しくないので教えてください。

  • メールアドレス「あいうえお<xxx@yyy.zzz>」@より前の「xx

    メールアドレス「あいうえお<xxx@yyy.zzz>」@より前の「xxx」と@より後の「yyy.zzz」 を取り出したいと思っているのですが、正規表現でどのように書けばよいのでしょうか。 元のメールアドレスは「xxx@yyy.zzz」だけの場合もあったりします。 よろしくお願いいたします。

  • 正規表現

    すみません。先輩の作ったPerlソースを机上で追っています。 Perlの実行環境がないので、よく動きが理解できないところが 多々あります。その中でも正規表現がどうにも理解できません。 以下の正規表現 ^http://([^/]*[.-])?(abc|efg?|hij|xxx)[.-] の場合、以下の例だと一致するのはどれになりますでしょうか? http://hij.com/ http://aahij.com/ http://hijaa.com/ http://aahijaa.com/ http://aa-hij.com/ http://hij-aa.com/ http://aa-hij-aa.com/ http://www.hij.com/ http://www.aa-hij.com/ http://www.hij-aa.com/ http://www.aa-hij-aa.com/ http://www.aahij.com/ http://www.hijaa.com/ http://www.aahijaa.com/ http://www.zzz.com/hij.html http://www.zzz.com/aa-hij.html http://www.zzz.com/hij-aa.html http://www.zzz.com/aa-hij-aa.html http://www.zzz.com/aahij.html http://www.zzz.com/hijaa.html http://www.zzz.com/aahijaa.html 簡単な解説も頂けると助かります。宜しくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現で文字を抜き出したい

    -----------------------ファイルの中身----------------------------- 8 個のファイル x,Xxx,xxx バイト ファイルの総数: 12400 個のファイル 419,000 バイト 8000 個のディレクトリ 280,284,000 バイトの空き領域 XXXXXXXX ------------------------------------------------------------------ 上記のものが一つのファイルの中にいくつか存在し、 その中の『ファイル総数:』~『バイトの空き領域』を 正規表現を使用して、VBSで抜き出したいと思っています。、 "ファイルの総数:[^バイトの空き領域]*バイトの空き領域(?=\r)" という正規表現を作成したのですが、うまく動作しません。 どのような正規表現を使用したら良いでしょうか。 どなたか、上記の抜き出す文言を示す正規表現をお教えください。

  • 表示されているレコードを1つ上にする

    環境:ACCESS2003&XP Pro テーブルとそのテーブルをソースにしたクエリーを元に一覧形式のフォームを作成しています。以下のようなイメージです。 品名  仕様  数量 単価 合計  A   xxx xxx xxx xxx ↑  b   yyy yyy yyy yyy ↑  C   zzz zzz zzz zzz ↑ *↑はボタン 上記の表示で↑ボタンをクリックすると 表示されたレコードがひとつ上に行く方法が わかりません。 よろしくお願いします。 例:上記で品名bの↑ボタンをクリック 品名  仕様  数量 単価 合計  b   yyy yyy yyy yyy ↑  A   xxx xxx xxx xxx ↑  C   zzz zzz zzz zzz ↑

  • 複数パターン文字列指定でログファイルの中身を削除

    はじめまして。 「a.log の xxx と yyy のある行を削除」 というようなshellScriptを書いています。 a.logは以下のようになっています。 a.log 111xxx111 222yyy222 333zzz333 222yyy222 444aaa444 555bbb555 111xxx111 xxx、yyyの複数パターンで行の削除はできないでしょうか。 sedで中間ファイル(ワークファイル)を2回作成すればできるのですが… なるべく中間ファイルは作成したくありません。 最終的にはa.logを下記のようにしたいです。 a.log 333zzz333 444aaa444 555bbb555 宜しくお願い致します。

  • 正規表現について

    あるファイルを読み込んで中に変数($xxx)が入っていたら 正規表現にて$xxxの値に変換する事は出来ますでしょうか? 試行錯誤しているのですが、上手くいかず困っています。 変数を正規表現にてマッチングさせるのも上手くいかないです。 ご教授お願いいたします。

    • 締切済み
    • PHP
  • 正規表現で置換

    その1 $str = "ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげ"; ↓ $str = "ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="./foo/faa/fii/xxx.jpg" width="320" height="240" />ほげほげ"; その2 $str = "<img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげ"; ↓ $str = "<img src="./foo/xxxx.jpg" width="320" height="240" />ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="./foo/faa/fii/xxx.jpg" width="320" height="240" />ほげほげ"; このような文字列があった時に、次のように従って置換したいです。 1.imgのタグの内部に、「http://yyy.hoge.jp/hage/hige/xxx.jpg」という文字列があった場合、「./foo/faa/fii/xxx.jpg」という文字列に置き換える。 2.それ以外のURLの場合は置換しない。 3.その1とその2では「xxx.jpg」となっていますが、jpg以外の拡張子の場合も存在する。 4.日本語とURLの位置や個数はバラバラです。 5.URLの中のxxxとyyyは不定の文字列で、hage、hoge、hige、foo、faa、fiiは固定です。 6.使用している言語はPHPです。正規表現を1度だけでできれば理想的ですが、今回は2回に渡った処理でも問題ありません。 以上です。正しく処理できる正規表現、あるいは下記の正規表現の誤りを教えて頂ければ幸いです。 お手数ですが、よろしくお願い致します。 下記の方法では、うまくできませんでした。 $pattern = "/http:\/\/.*?hoge.jp\//"; $replacement = "./"; $str= preg_replace($pattern, $replacement, $str); $pattern2 = '/\/?hage\/hoge/'; $str = preg_replace($pattern2, '/foo/faa/fii', $str);

    • ベストアンサー
    • PHP
  • ワードの置換で、文字列の前後に文字を追加

    ワードの置換について教えてください。 http://xxx/yyy/zzz という文字列があった場合、これを ABC-http://xxx/yyy/zzz-001 というように前後に文字列を追加したい場合はどうすれがいいのでしょうか? よろしくお願いします。

  • ディレクトリの正規表現について

    ディレクトリの正規表現について いつもお世話になっております。 例えば以下のようなディレクトリ構造で「_hoge」や「_hogehoge」の部分を 抜き出したいと考えております。 (必ず「exe」の配下にディレクトリとなっております。) /exe/_hoge/index.php /exe/_hogehoge/index.php PHPの正規表現でどのようにしたらよろしいでしょうか。 ご教示よろしくお願いいたします。 [環境]  PHP:5.1.6

    • ベストアンサー
    • PHP