|
秀まるお2さんへ
こんばんはTAKATAKAです。
ご教授ありがとうございました。
masktag, maskonlyという
魔法の呪文のようなオプションがあったのですね!
これでバッチリ動きました!
ありがとうございます。
そこでもう一つだけ質問があるのですが、
よろしいでしょうか。
いよいよオリジナルのマクロ作りも佳境になりまして、
HTMLタグ加工後の最終整形を行いたいのですが、
最後のinsertの部分が上手くいきません。
やりたい事は、
<table class="10 test1" border="0" align="center" class="12 test2" height="3
00" width="200" class="15 test3">
上のようにclass属性が複数あるタグを、次のように一つにまとめたいのです。
<table class="10 test1 12 test2 15 test3" border="0" align="center" height="
300" width="200">
しかし、現状では、以下のように置き換わってしまいます。
<table class="10 test1 12 test2 15 test3" border="0" align="center" height="
300" width="200">class="10 test1" border="0" align="center" class="12 test2"
height="300" width="200" class="15 test3">
結構いいところまで行っているのですが、
自力で解決できなくて残念です。
(多分、searchdown2とinsertの連携だと思うのですが・・・)
度々で恐縮ですが、ご教授いただけないでしょうか。
宜しくお願いいたします。
コードは以下のとおりです。
このコードは、ユーザのIKKIさんからいただいたものをアレンジして作成しました。
IKKIさんありがとうございました!
---------------------------------------------------------------------------
ここから
loaddll "hmjre.dll";
begingroupundo;
gofiletop;
searchdown2 "(?<=(<.*?))(class=\".*){2,}", regular, nocasesense, masktag, ma
skonly;
while (result) {
$$class = "";
$$tag = "";
$$tag = gettext(foundtopx, foundtopy, foundendx, foundendy, true);
message "最初のtagの中身:" + $$tag;
while (true) {
if (dllfunc("FindRegularNoCaseSense", " class=\"(.*?)\"", $$tag, 0) < 0) {
break;
}
$$value = "";
$$value = midstr($$tag, dllfunc("GetLastMatchTagPosition", 1), dllfunc("Ge
tLastMatchTagLength", 1));
if ($$class == "") {
$$class = "class=\"" + $$value;
}else{
$$class = $$class + " " + $$value;
}
$$tag = dllfuncstr("ReplaceRegularNoCaseSense", " class=\"(.*?)\"", $$tag,
0, "", 0);
}
message $$class + "\"" + $$tag;
insert $$class + "\"" + $$tag;
finddown2;
}
endgroupundo;
freedll;
---------------------------------------------------------------------------
ここまで
|
|