C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: HTMLから特定の範囲を取得したい


(過去ログ 67 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■39210 / inTopicNo.1)  HTMLから特定の範囲を取得したい
  
□投稿者/ マメ (1回)-(2009/07/31(Fri) 14:18:19)

分類:[VB.NET/VB2005 以降] 

今やりたい事は「</b> (0)</h3>」のようなタグがあり、
そこから数値の部分だけ取得したいと思っています。
0の部分は0〜9999まで不特定に値が変わります。

indexofだと他の場所にも「</b> (」と同じ記述があり取得できず
かといって「</b> (」と「)</h3>」を同時に指定する方法も見つかりません。

どなたかお知恵をお貸しくださいませ。



引用返信 編集キー/
■39212 / inTopicNo.2)  Re[1]: HTMLから特定の範囲を取得したい
□投稿者/ .SHO (989回)-(2009/07/31(Fri) 14:28:45)
> indexofだと他の場所にも「</b> (」と同じ記述があり取得できず
> かといって「</b> (」と「)</h3>」を同時に指定する方法も見つかりません。

同時じゃなくてもいいのでは?
引用返信 編集キー/
■39213 / inTopicNo.3)  Re[2]: HTMLから特定の範囲を取得したい
□投稿者/ ぱると (48回)-(2009/07/31(Fri) 14:57:19)
htmlタグを使用しているようなので分類はASP.NETでしょうか?
もしそうだとしたら数値の部分にLiteralを配置すれば良さそうですが、
Javascriptとかで値を変更するのであればLabelとか他のコントロールの方が良いかもしれません。

indexofをどうしても使いたいのであれば「)</h3>」から先に探した方が効率的かもしれません。
引用返信 編集キー/
■39214 / inTopicNo.4)  Re[1]: HTMLから特定の範囲を取得したい
□投稿者/ επιστημη (2076回)-(2009/07/31(Fri) 14:59:48)
επιστημη さんの Web サイト
> 今やりたい事は「</b> (0)</h3>」のようなタグがあり、
> そこから数値の部分だけ取得したいと思っています。
> 0の部分は0〜9999まで不特定に値が変わります。

正規表現使うが楽チンでしょうけど、泥臭くやるなら:

1. "</b>(" を探す。このときの'('の位置を begin とする。
2. begin以降に現れる ")</h3>" を探す。このときの')'の位置をendとする。
3. beginとendに挟まれた文字列がすべて数字であれば採用。
4. beginを起点として1-3を繰り返す。

引用返信 編集キー/
■39215 / inTopicNo.5)  Re[2]: HTMLから特定の範囲を取得したい
□投稿者/ やじゅ (1163回)-(2009/07/31(Fri) 15:52:07)
やじゅ さんの Web サイト
//正規表現により、()内の数値を取得
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"\((\d+)\)");
System.Text.RegularExpressions.Match m = r.Match("</b> (1234)</h3>");
Console.WriteLine("数値:" + m.Groups[1].Value);

説明 "\((\d+)\)"
「\(」 が左括弧
「(\d+)」が数値(ここでの括弧はグループ化をあらわす)
「\)」 が右括弧

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -