したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

htmltodatサポートスレッド

353 ◆/vmukiyuzw:2006/11/27(月) 23:49:55
こちらの板向きの話なので引用させてください。

http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/175

>> s#(<title.*?) - DUMPER.JP(</title>)#$1$2#
> を
>> s#(<title.*?) - 2ちゃんねるみらー(</title>)#$1$2#
> に変えるとマッチしない。なんでだ・・。。

s#(<title.*?) - 2ちゃんねるみらー(</title>)#$1$2#k

のようにkオプションを付ける必要があります。

kオプションは文字を日本語(SJIS)として扱うためのものです。
(perlには存在しないbregexp.dllの独自拡張機能)

自分の書く正規表現でもついサボって付けてなかったりすることが多いのですが、
大抵はうまくいくけれど今回のように問題が出る場合もあるようです。

具体的には、"2ちゃんねるみらー"の"ー"の2バイト目が"["(16進で5B)にあたるため
正規表現の"["と解釈されてしまって、エラーとなるようです。

多分このように2バイト文字の2バイト目が正規表現の文法とぶつかるようなケースが
まずいのだと思うのですが、具体的にどの文字だとダメかとか調べるのも大変なので、
日本語にマッチさせるような正規表現を使う場合は基本的にkオプションを付けるように
お願いします。

# 今までは日本語は"投稿日:"ぐらいしか使ってなかったので問題なかった模様。
# 今後気をつけます。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板