| 
|  | サイトのソースをinnerhtmlで取得し、正規表現でIDの数字のみを抜き出したいですが、ExecuteからFOR文でMatches.Item(i).Valueで取得し、FPUTでファイルに書き出し、それをfgetで全テキスト取得し、chgmojでいらないIDの前後を削除しています。もっとダイレクトに正規表現のみでIDのみを抜き出す方法ないでしょうか? 
 【サイトソース】
 テキスト1
 id="inline_1806">
 テキスト2
 id="inline_1206">
 テキスト3
 id="inline_1156">
 
 【正規表現で検索できている分】
 id="inline_1806">
 id="inline_1206">
 id="inline_1156">
 
 【希望処理】
 1806
 1206
 1156
 
 【試してスクリプト】
 
 文字列全体=IE.document.body.innerhtml
 
 
 Public regvb=CREATEOLEOBJ("VBScript.RegExp")
 
 // fid=""
 file = FOPEN("Desktop\wp.txt", F_WRITE)
 
 
 Pattern="inline_\d{1,4}"
 Matches=regvb_Execute(文字列全体, Pattern)
 
 for i = 0 to Matches.count-1
 FPUT(file, Matches.Item(i).Value, i+1)
 next
 
 zenn=fget(file, F_ALLTEXT)
 
 tesaa=chgmoj(zenn, "id=<#DBL>inline_", "")
 tesaa=chgmoj(tesaa, "<#DBL>>", "")
 tesaa=chgmoj(zenn, "inline_", "")
 FPUT(file, tesaa,F_ALLTEXT)
 FPut(file, Join(Split(FGet(file, F_ALLTEXT), "<#CR>"), "<#CR>", TRUE), F_ALLTEXT)
 
 fclose(file)
 Function regvb_Execute(str, Pattern, IgnoreCase=TRUE, Global=TRUE)
 regvb.IgnoreCase=IgnoreCase
 regvb.Global=Global
 regvb.Pattern=Pattern
 Matches=regvb.Execute(str)
 Result=Matches
 Fend
 
 |  No.3511 2017/02/19(Sun) 23:39:24 
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / しき |  
|  | No.3512 2017/02/20(Mon) 00:30:15 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい |  
|  | 
|  | しき様、ありがとうございます。こんなに便利なやり方あるんですね。 _(\d{1,4})、()でくくってサブマッチさせるやり方とても簡単で使いやすいです。
 
 |  No.3513 2017/02/20(Mon) 08:54:10 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / しろまさ |  
|  | 
|  | 慣れたらreplaceも試して下さい。速くなりますよ。 
 TextBlock	aaa
 テキスト1
 id="inline_1806">
 テキスト2
 id="inline_1206">
 テキスト3
 id="inline_1156">
 EndTextBlock
 
 list = regReplace(aaa, ".*inline_(\d+).*|.*\r\n", "$1")
 MsgBox(list)
 
 //	正規表現 置換
 Function	regReplace(a_text, a_ptn, a_after)
 Dim reg	= CreateOLEObj("VBScript.Regexp"); reg.Global = TRUE; reg.Multiline = TRUE; reg.pattern = a_ptn; Result = reg.Replace(a_text, a_after)
 FEnd
 
 |  No.3515 2017/02/20(Mon) 12:19:53 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / stuncloud |  
|  | 
|  | // 正規表現使わんでもいい気がします 
 for elem in IE.document.querySelectorAll("*[id]") // id属性のあるエレメントを列挙
 n = replace(elem.id, "inline_", "")
 if chknum(n) then
 print n // 数字っぽいのだけprintする
 endif
 next
 
 |  No.3516 2017/02/20(Mon) 12:27:46 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい |  
|  | 
|  | しろまさ様、回答ありがとうございます。しろまさ様のスクリプトでもできました。 パターンで、|.*\r\n", "$1"この部分が今の自分の実力では理解ができません。
 |が論理和、\r\nの \nが改行にマッチ、\rがキャリッジリターン(行頭復帰)にマッチとなっていますが、なかなか難しいですね。
 
 |  No.3517 2017/02/20(Mon) 15:37:19 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / ゆうい |  
|  | 
|  | stuncloud様、回答ありがとうございます。以下のスクリプトで試したのですが、このような表示がされできませんでした。intenet explorerは動作を停止しましたと表示、プログラム終了のボタンが表示になります。ワードプレスプレスの管理画面のソースのID取得で試しています。 
 [試したスクリプト]
 URL1="http://b.jp/nan/"
 TRY
 IE = CREATEOLEOBJ("InternetExplorer.Application")
 EXCEPT
 EXEC("C:\Program Files\Internet Explorer\iexplore.exe")
 IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
 ENDTRY
 IE.visible = true
 IE.navigate(URL1)
 
 REPEAT
 SLEEP(0.1)
 UNTIL !IE.busy AND IE.readystate = 4
 
 for elem in IE.document.querySelectorAll("*[id]") // id属性のあるエレメントを列挙
 n = replace(elem.id, "inline_", "")
 if chknum(n) then
 print n // 数字っぽいのだけprintする
 endif
 next
 
 |  No.3518 2017/02/20(Mon) 15:43:08 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / stuncloud |  
|  | 
|  | あれれ、なんでしょうね… すいません思いつきで書いたので実際に試してないんですが、IEが停止って大事ですね
 理屈の上ではそういう書き方でも抽出できるよ、という例のつもりだったのですが…
 もうしわけない、あとで時間取れたら確認してみます
 
 |  No.3519 2017/02/20(Mon) 16:30:53 |  
 
|  | ☆ Re: 正規表現で抜き出した分から、数字のみを抽出する方法 / stuncloud |  
|  | 
|  | > intenet explorerは動作を停止しましたと表示、プログラム終了のボタンが表示になります。 こちらの環境でも再現しました、原因はわかりません
 僕の書いたサンプルは使用しないでください
 
 |  No.3521 2017/02/20(Mon) 17:54:24 |  |