mIRC Script 에서 HTML 태그를 지워주는 함수.
hello <strong>world</strong> 이라는 문자열이 있다면 <strong>과 </strong>을 지우고 hello world 를 리턴해준다. 소켓으로 웹사이트에서 데이터를 읽어올 때 자주 쓰인다.
정규식을 사용했을 때
alias -l stripHTML {
var %i = $1-
var %regsub = $regsub(stripHTML,$1-,/<([^>]+)>/g,$null,%i)
return $replace(%i,<,$eval(<,0),>,$eval(>,0), ,$chr(32),$chr(9),$null)
}
정규식을 사용하지 않았을 때
alias -l stripHTML {
var %msg = $1-
var %i = 1
while ($gettok(%msg, %i, $asc(<))) {
if (*<*>* iswm $eval(<,0) $+ $v1) {
%msg = $remove(%msg, $gettok($v2, 1, $asc(>)) $+ $eval(>,0))
%i = 1
}
else inc %i
}
return $replace(%msg,<,$eval(<,0),>,$eval(>,0), ,$chr(32),$chr(9),$null)
}
정규식을 사용하는 편이 더 간단하지만 mIRC 5.9 미만 버전에서는 정규식을 지원하지 않아 에러가 날 수 있다. 또한 정규식을 사용할 때 $regsub(stripHTML,$1-,/<([^>]+)>/g,$null,%i) 에서 $null 을 생략하고 $regsub(stripHTML,$1-,/<([^>]+)>/g,,%i) 로 작성해도 되지만, mIRC 5.9 에서는 문법 오류가 생기므로 $null 을 넣어주는 편이 좋다.
mIRC 버전에 따라 정규식 사용/미사용을 결정하고자 한다면 아래와 같이 작성하면 된다.
alias -l stripHTML {
var %msg = $1-
if ($version >= 5.9) {
var %regsub = $regsub(stripHTML,$1-,/<([^>]+)>/g,$null,%msg)
return $replace(%msg,<,$eval(<,0),>,$eval(>,0), ,$chr(32),$chr(9),$null)
}
else {
var %i = 1
while ($gettok(%msg, %i, $asc(<))) {
if (*<*>* iswm $eval(<,0) $+ $v1) {
%msg = $remove(%msg, $gettok($v2, 1, $asc(>)) $+ $eval(>,0))
%i = 1
}
else inc %i
}
return $replace(%msg,<,$eval(<,0),>,$eval(>,0), ,$chr(32),$chr(9),$null)
}
}

Prev
Rss Feed