• ベストアンサー

文字コードの問題

検索ルーチンを作ってて問題が起きました。 EUCコードでの検索で".{4}庁"を正規表現で検索した時、"FDA"の部分がヒットしてしまったみたいで上手くいきません。調べた所、"庁"はEUCで"C4C3"、Dが"A3C4"、Aが"A3C1"でDAで"C4A3"が含まれてしまい失敗しているだろう事は分かりました。ただ、解決方法が分からりません。よろしければ良い手立てを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

http://www.din.or.jp/~ohzaki/perl.htm#JP_Match ここが参考になりませんか?

参考URL:
http://www.din.or.jp/~ohzaki/perl.htm#JP_Match
jukimoto
質問者

お礼

返答が遅れて申し訳ありません。土日PCに触れなかったもので・・・。 参考URLの区切り文字を入れて検索するやり方で上手くいきました。本当は処理速度が速いと書かれている方でやりたかったのですが、上手く行かず、試行錯誤した結果、自分のプログラムに組み込めました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

encoding 指定をしてスクリプトを記述する ファイルからの読込もencoding 指定をして取り込む

jukimoto
質問者

お礼

返答いただきありがとうございました。無事解決しました。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Unicode にするとか.

jukimoto
質問者

お礼

返答いただきありがとうございました。無事解決しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字コードの判定処理について

    いつもお世話になっております。 以下の例の様に 文字コードがEUCであるか正規表現で判定ロジックを記述したいのですが、 どのように記述すればよろしいのでしょうか? (例) if(文字コードがEUCであるか正規表現でチェック){  処理A }

    • ベストアンサー
    • Perl
  • PHPの文字コード

    phpでの文字コードについて、どうするか迷っています。 perlの時はutf8に統一しましたが、phpの場合、ソースはeuc-jpにして、html出力もeuc-jpにする例が多いのですが、私としては、ソースはutf8にしてhtml出力もutf8にしようと考えています。 理由は、半角カナやIBM拡張文字などはeuc-jpでは使えないためです。 みなさんにお聞きしますが、utf8ベースで開発した場合、文字列操作や正規表現やDB関係などで困るような具体的な例が知りたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ハイフン省略可能な電話番号の正規表現

    ハイフンを省略できる電話番号の正規表現をJavaScriptで書いているのですが、思うようにマッチしません。 検索すると以下のような正規表現がヒットしました /^0\d{1,4}-\d{1,4}-\d{4}$/ 上記の正規表現のハイフンの後ろに「?」をつけて、ハイフンが省略されてもヒットするように /^0\d{1,4}-?\d{1,4}-?\d{4}$/ しましたが、思い通りにヒットしません。 例えば、090-1234もヒットしてしまいます。 どうしたらハイフンを省略可能な電話番号の正規表現を書くことができますか?教えてください!

  • 文字コードを変換したURLを作成する

    こんにちは、色々試してみたのですが私の実力では駄目でした・・・ご教授お願いします。 フォームに入力されたテキストを文字コード変換して、URLに埋め込みたい。 具体的には、オークファン(http://aucfan.com)で検索した結果のURLを作りたい。 例えば、オークファンで「あいうえお」と検索したい場合は、以下のURLになります。 http://aucfan.com/search1/smix-q~a4a2a4a4a4a6a4a8a4aa-tl30d-ot1-vmode_0.html このようなURLを生成したいのです。 ユーザーがフォームに検索したい文字を入力すると、オークファンのURLが作られてアクセス出来る様にする。 私のサイトはUTF-8で書いています。このコードは変えずに実現したいです。 オークファンの文字コードは、EUC-jp $keyword = mb_convert_encoding(フォームに入力された文字,"EUC-jp","utf-8"); と変換して、 $aucfan_url="http://aucfan.com/search1/smix-q".$keyword."-tl30d-ot1-vmode_0.html"; としても、$keywordの部分が、「~a4a2a4a4a4a6a4a8a4aa」とならず、文字化けしてぐちゃぐちゃの文字になってしまいます。 分かる方いましたら、ご教授お願い致します。

    • ベストアンサー
    • PHP
  • 文字コードの変換について

    いつもありがとうございます。 PHPで文字コードを変換してページのURLを作りたいのですが、どうしても出来なかったので質問させてください。 2chの検索結果のURLを作りたいです。 例えば、「声優」と検索すうるとURLが以下になるんですが、 http://find.2ch.net/?STR=%90%BA%97D&TYPE=TITLE&x=0&y=0&BBS=ALL&ENCODING=SJIS&COUNT=50 この「%90%BA%97D」をどうやって作っていいのかわかりません。 2chはEUC-JPで書いていて、私のサイトはUTF-8なので、 <?php $keyword="声優"; echo $url='http://find.2ch.net/?STR='.mb_convert_encoding($keyword,"EUC-JP","UTF-8").'&TYPE=TITLE&x=0&y=0&BBS=ALL&ENCODING=SJIS&COUNT=50'; ?> としたのですが、駄目でした わかる方居ましたら、ご教授お願いします。

    • ベストアンサー
    • PHP
  • この文字コードは?

    大変お恥ずかしいレベルの質問です C#で印刷プログラムを作成しました プリンタ出口(注)で待ち構えて出力ログを取ったところ 半角文字の A ⇒ 0024 半角文字の J ⇒ 002D 半角文字の 1 ⇒ 0014 半角文字の 9 ⇒ 001C 全角文字の 印 ⇒ 0F33 全角文字の 験 ⇒ 3982 全角文字の に ⇒ 50D1 全角文字の る ⇒ 50F1 となって出力されています UNICODEやANSIであれば A は 0041 となると思いますが 0024 なのです これは如何なる種類の文字コードなのでしょうか? C#ですから当然UNICODEコードが使われていると思ったのですが・・・・・ 色々調べましたが分かりません 宜しくご指導お願い申し上げます (注)実際の印刷出力では ExtTextOutW API でプリンタに渡しています そこでこの ExteTextOutW API にフックを仕掛けてパラメータをダンプしたのです

  • x41等の、半角コードが何の文字に対応しているのかを知りたい

    phpで正規表現を調べていると 半角コードというものがあるということが わかったのですが、いったいx41は何の文字で 何の文字がx○なのか、わかりません。 googleで「半角コード 一覧」等で検索してみたものの そのようなコードと文字とが対応した一覧表のようなものを 見つけることはできませんでした。 何の文字が何のコードに対応しているか一覧を載せている おすすめのサイトをご存知ないでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現で2回以上連続する文字にHITさせたい

    パスワードの入力で aa や 11 など 2回以上連続する文字を入力したらHITさせてはじきたいんですが どういう正規表現を書けばよいでしょうか /.{2,}/ としたのですが 結局二文以上あれば何にでもHITしてしまいます /a{2,}|b{2,}|c{2,}・・・/ みたいなのを スマートに書く方法はありませんか

    • ベストアンサー
    • Perl
  • EXCEL2010 VBA 文字コード

    EXCEl2010のVBAで作成しています。 シート1のA1とA2に値を入力し、A1は行数を示しA2はアルファベットの数を表します。 値の分だけシート2のA1から下にアルファベットを表示していきます。 このアルファベットの表示を繰り返し処理でうまく作成したいと思っています。 アルファベットは文字コードがあり、そのコードの数に数字を加えたらAをBに変えるなどが できるという話を聞いたことがあるのですが。。。 どなたか良い方法があれば教えてください。 (例) シート1!A1:3 シート1!A2:4 の場合 シート2 A1:A A2:A A3:A A4:B A5:B A6:B A7:C A8:C A9:C A10:D A11:D A12:D

  • 正規表現で数字をメタ文字に置換えると結果が異なる理由が分かりません。

    正規表現で数字をメタ文字に置換えると結果が異なる理由が分かりません。 現在、正規表現でチェックするコードがあります。 この正規表現中の数字「9」を「\d」に置換えました。  置換え前)  置換え後)   9([x]c+)*&  \d([x]c+)*& VisualStudio2008のC#にて実装し、文字列「9xc1&」で テストすると結果が異なりました。 (Regexクラスのオプションはデフォルトのまま) Regex.IsMatch("9xc1&", @"9([x]c+)*&") == false Regex.IsMatch("9xc1&", @"\d([x]c+)*&") == true 置換え前が正しいと思うのですが、メタ文字に置換えると グループやアスタリスクの影響を受けるのでしょうか? アドバイスをお願い致します。