正規表現at UNIX正規表現 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト200:189 03/05/08 14:19.net >>197 これだと、 木立 山の上の芋粥 になってしまいます。求めているのは、 木立(こだち)のなかに 山の上の芋粥(いもがゆ) です。 201:197 03/05/08 14:22.net マジ? 手元の Perl 5.005_03 だと求めているのになるのだが・・・ 202:189 03/05/08 14:28.net >>199 すみませ~ん。 求めているものになりました。いろんなスクリプト混ざり合ってたので 混乱しました。 (.+)が最長一致するから(.+)でいいってことに気づきませんでした。 203:名無しさん@お腹いっぱい。 03/05/08 14:45.net perlの正規表現と日本語文字列との相性の悪さを 実感する問題だったなあ 204:192 03/05/08 14:50.net 本当に全角だったのか。失礼。だとすると、/(/ が EUC の 2 バイト目と 文字に一致するとは限らないので注意。全角文字の 2 バイト目と次の文字の 1 バイト目がそれぞれ \xa1 と [\xca-\xcb] にマッチする場合があるので、 文字列「検便」\b8\a1\xca\xd8 にも「(」がマッチしてしまう。 日本語 EUC の 1 文字 にマッチさせたいなら、厳密には (\x8f?[\xa1-\xfe]{2}|\x8e[\xa1-\xfe]|[\x00-\xff]) にマッチさせなくてはならない。 Perl6 の国際化された正規表現が普及して、こんな知識は不要になって くれれば一番いいのだが…。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch