HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0126
0125文字列の複数抜出(かなり長いです)5解決


0125

リンク

2014/1/26(Sun) 23:28:10|NO.59524

ウォレットチャージ履歴をソフトで表示させたいです。
ウェブマネーのチャージ履歴から
入金時間、プリペイド番号、チャージ金額
を抜き出してそれぞれ表示したいです。
htmlのソースをここに記載すると規約違反と出て書き込めなかったので
どっとうpろだのサーバーにテキストをあげました。


http://www.dotup.org/uploda/www.dotup.org4829031.txt

簡単な抜出はできるのですが
ここまで複雑な文字列になると自分の限界では抜き出すことができませんでした。
よろしくお願いします。



この記事に返信する


Tetr@pod

リンク

2014/1/26(Sun) 23:38:48|NO.59525

1."<td class=\"meisai_list_date\">"を検索、そっから次に現れる"<"まで抜き出して 日付 を取得。
2."<p class=\"meisai_info\">"を検索、そっから次に現れる"<"まで抜き出して プリペイド番号 を取得。
3."<span class=\"meisai_pts_up\">"を検索、そっから次に現れる"<"まで抜き出して 金額 を取得。
4.1〜3を繰り返し行い、1.のが見つからなくなったら終了

こんなもんでどうでしょう。
あ、2回目以降はinstrの第2引数を指定しないと延々と最初のを取得します。



fortunehill

リンク

2014/1/26(Sun) 23:44:57|NO.59526

/*ご参考(今宵も出遅れ)*/

notesel ss noteload "n.html" repeat notemax noteget ss(1),cnt if (cnt >= notemax) {break} if (instr(ss(1),0,"meisai_list_date") >= 0) {mes ss(1)} if (instr(ss(1),0,"meisai_info") >= 0) {mes ss(1)} if (instr(ss(1),0,"meisai_pts_up") >= 0) {mes ss(1) noteget ss(1),cnt+1 :mes ss(1)} await loop



0125

リンク

2014/1/27(Mon) 00:11:28|NO.59527

うっは。。

http://gyazo.com/cc95f14731e333b0c62fed41a8f372be


こんな感じになりました。。
こんだけ短いソースで確実にどうやってやったものか。。。

どうなってるのか仕組みがよく理解できませんww
こんなに短いソースでいけるなんてびっくりですT_T
ありがとうございます!!



deno

リンク

2014/1/27(Mon) 03:33:44|NO.59531

ほかに正規表現使った方法もあります

#include "mod_regexp.as" notesel ss noteload "n.html" matches s,ss,"<td class=\"meisai_list_date\">(.*?)</td>(?:.|\\n)*?<p class=\"meisai_info\">(.*?)をチャージ</p>(?:.|\\n)*?<span class=\"meisai_pts_up\">\\s*(.*?)</span>" repeat stat mes s(cnt,1) mes s(cnt,2) mes s(cnt,3) loop



0125

リンク

2014/1/27(Mon) 19:33:42|NO.59535

おおおっっ...
完璧です!
ありがとうございます!!



ONION software Copyright 1997-2021(c) All rights reserved.