EraseTag { /*******************************************/ /* SAKURAスクリプトタグのパターン */ /* a)"\" に続いて1文字 */ /* b)"\" に続いて1個以上の "_" と1文字 */ /* c)(a)(b)に続く "[" から "]" */ /* d)(a)(b)に続く1桁数字 */ /* "\\" は "\" に */ /* "[" から "]" の中の "\]" を考慮に入れる */ /* アンカータグは展開する */ /*******************************************/ //---- ANCHOR_TOP _a = 0 ; _astr = "" //---- ANCHOR_END _str = "" while 1 { if (_chr = SUBSTR(_argv[0],0,1)) != "\" { if _chr == "" ; break // 終端なら抜ける _str += _chr _argv[0] = ERASE(_argv[0],0,1) } else { _argv[0] = ERASE(_argv[0],0,1) //---- "_" を取り除く for _i = 0 ; (_chr = SUBSTR(_argv[0],0,1)) == "_" ; _i++ { _argv[0] = ERASE(_argv[0],0,1) } if _chr == "" ; break // 終端なら抜ける //---- 1文字削除する _argv[0] = ERASE(_argv[0],0,1) if _chr == "0" && _i == 0 ; _str += "(0)" elseif _chr == "1" && _i == 0 ; _str += "(1)" elseif _chr == "\" && _i == 0 ; _str += "\" else { //---- ANCHOR_TOP if _chr == "a" && _i == 1 ; _a = 1 ; else ; _a = 0 //---- ANCHOR_END case SUBSTR(_argv[0],0,1) { //---- 1桁数字を取り除く when "0","1","2","3","4","5","6","7","8","9" { _argv[0] = ERASE(_argv[0],0,1) } //---- "[" から "]" を取り除く(ネストに対応) //---- "\]" を考慮に入れる when "[" { _argv[0] = ERASE(_argv[0],0,1) //---- ANCHOR_TOP //---- 括弧付きのアンカータグ(アンカー開始) //---- の場合、初期化処理 if _a == 1 ; _astr = "" //---- ANCHOR_END _chr = "" _nest = 0 while _nest >= 0 { //---- ANCHOR_TOP //---- 括弧付きのアンカータグ(アンカー開始) //---- の場合、括弧内の文字列を取得する if _a == 1 ; _astr += _chr //---- ANCHOR_END _old = _chr _chr = SUBSTR(_argv[0],0,1) if _chr == "" ; break // 終端なら抜ける elseif _chr == "[" ; _nest++ elseif _chr == "]" && _old != "\" ; _nest-- _argv[0] = ERASE(_argv[0],0,1) } //---- ANCHOR_TOP //---- 括弧付きのアンカータグ(アンカー開始) //---- の場合、URLを取得する if _a == 1 { reference0 = _astr _astr = OnAnchorSelect if STRLEN(_astr) != 0 { _pos = STRSTR(_astr,"\j[",0) _astr = ERASE (_astr,0,_pos+3) _pos = STRSTR(_astr,"]",0) _astr = SUBSTR(_astr,0,_pos) } } //---- ANCHOR_END } //---- ANCHOR_TOP //---- ここに来るのは、括弧の無いアンカータグ(アンカー終了) others { if _a == 1 && STRLEN(_astr) != 0 { _str += "(" _str += _astr _str += ")" } } //---- ANCHOR_END } } } } //---- 見栄えを良くする _str = REPLACE(_str,"(0)(1)","(1)") _str = REPLACE(_str,"(1)(0)","(0)") _str = REPLACE(_str,"(0)(0)","(0)") _str = REPLACE(_str,"(1)(1)","(1)") _str }