wwwsrchで特定の行を無視させる方法は?
[上に]
[前に]
[次に]
Mr.Data
1999/12/16(木) 01:00:07
選択フォームを使ってリンク設定(JavaScriptのlocation.href)しているページを
かなり多くアップしているのですが(400ファイル位)、
その部分の文字列を検索対象から外したいのです。
どのような方法がありますか?
<OPTION SELECTED value="-">文字列文字列文字列
<OPTION value="1-1-2.htm">文字列文字列文字列
<OPTION value="1-1-3.htm">文字列文字列文字列
・
・
・
以前このラウンジでJavaScriptについての同様の投稿がありまして、
それも参考にさせていただきましたが、
当方CGI初心者のため理解できませんでした。
よろしくお願いいたします。
kala
1999/12/16(木) 11:59:28
一番単純なのは、行の初めに「<OPTION」があればその行は飛ばすという処理ですが、意図しない個所の「<OPTION」も飛ばしてしまいます。
if ($line =~ /^<OPTION/i) { next; }
Mr.Data
1999/12/18(土) 07:17:07
kalaさんレスありがとうございます。
さっそくやってみたのですがうまくいきません(その行を拾ってしまう)。
sub search2 {
以降のいろいろなラインに挿入して試してみたのですが...。
2バイト文字は特定の文字列によって拾ったり拾わなかったり(以前から)するのですが、
何か関係があるのでしょうか?
ちなみに...
<SELECT name="Link" size="1" onChange="LinkSelect(this.form, this)">
<OPTION SELECTED value="-">文字列
<OPTION value="01.htm">文字列
<OPTION value="02.htm">文字列
・
・
・
のようにHTMLには1行づつ記述してあります。
wwwsrchのバージョンはVer3.05です。
kala
1999/12/18(土) 12:26:11
行の冒頭にスペースが入っているのなら記述も変わってきます。
212: # それぞれの行に対し・・・
213: loop: for ($i = 0; $i <= $#lines; $i++) {
214: $line = $lines[$i];
215: if ($line =~ /^ <OPTION/) { next; } <-- これを挿入
前回と違う点は「<OPTION」の前にスペースが入っているところです。詳しくは http://www.tohoho-web.com/wwwperl1.htm#Expr を参照してください。
Mr.Data
1999/12/18(土) 21:22:01
[[解決]]
うまくいきました!
kalaさんありがとうございました。
アドバイスいただいたように、
「正規表現」のページも再度読み直して理解が深まりました。
ところで、別件でどうかとも思うのですが、
「特定の文字列を拾わない」
については何か原因とか考えられるのでしょうか?
ちなみにその文字列を含むページは別の文字列で検索すると
引っかかります。
kala
1999/12/18(土) 23:59:02
うーん,このあたりはよく知らないのでもっと詳しい人に頼みたいところですが,これなど関係あるのでは?
../199909/99090049.htm
saka
1999/12/19(日) 00:22:23
こんばんわ..
私も「正規表現」の勉強中です。
現在似たような事を試しています。で回答になるか判りませんが..
212: # それぞれの行に対し・・・
213: loop: for ($i = 0; $i <= $#lines; $i++) {
214: $line = $lines[$i];
215: if ($line =~ /^ <OPTION (.*)$/) { next; } <-- これを挿入
文字列にSJISの2バイト文字が有ると「正規表現」に問題が起きるようなので、
(.*)を使って全ての文字列とマッチするようにしてみてはどうですか?
Mr.Data
1999/12/19(日) 02:47:54
kalaさんありがとうございました。
以前「正規表現」でこのラウンジで検索しなかったもので、
あらためていろいろ読んでみました。
勉強します。(今回は非常に感謝です!)
sakaさんありがとうございました。
うまくいきませんでしたが、とても参考になりました。
日本語環境では完璧な検索って難しいのですね。
今後また「正規表現」についてのことありましたら
勉強させていただきたいです。
[上に]
[前に]
[次に]