• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:置換のエラー Unmatched [ before HERE mark in regexとは?)

置換のエラー Unmatched [ before HERE mark in regexとは?

このQ&Aのポイント
  • チャットログに特定の文字にリンクを貼りたいと思っています。
  • キーワードとURLを登録し、キーワードが出たらリンクタグをつけます。
  • キーワードに『ー』が含まれると置換のエラーが発生します。どう対処すればいいのか分かりません。

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

  • ベストアンサー
  • tujige
  • ベストアンサー率68% (13/19)
回答No.2

sjis -> euc -> sjis としているわけですね。 確かに大丈夫だとは思います。 wind 系で apache を使用していらっしゃるようですが、エディタで編集するのが便利ということであれば、「秀丸」などのエディタであれば、sjis, euc などを扱えるので特に困ることもないかと。 「便利」というだけで、sjis -> euc -> sjis とすることもないかな?というのが私の考えですが、いかがでしょう。 もし、sjis ということであれば、JPerl を使用したほうがよいのではないでしょうか。 5.005_03 ベースでよいのであれば、バイナリも存在しますし。 私は Unix 系ですが、JPerl を使用して不具合無くサイトを構築した経験もありますし。ただ、jcode.pl の挙動が怪しいという話は聞いたことがあります。 # 最近 perl はご無沙汰なのですが、5.6 からマルチバイト対応になったと # 聞いています。 # ただ、どの程度対応なのかは確認していませんが。。。

katsudon
質問者

お礼

いろいろありがとうございました。 http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm を見たところShift_JISは多くの問題を抱えていることが分かりました。 私の知っていた問題点はその一部に過ぎなかったようです。 ほかのスクリプトのデータがかなり膨大なので、 いまさらデータをEUCへ変換することができません。 (サイトはレンタルサーバーを利用していてそこはActivePerlを使って いるのでJPerlに変更できません。不具合はローカルで実験した時に発生したものです。) その場しのぎの策でなんとかしたいと思います。 本当にありがとうございました。

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

その他の回答 (1)

  • tujige
  • ベストアンサー率68% (13/19)
回答No.1

ひょっとして、データを Sjift_JIS で記述していませんか? ならば、「ー」だけでなく「表」などもアウトだと思うのですが。(いわゆる、二バイト目があたるという問題です。) JPerl など、日本語対応の perl 以外なら、EUC で保存するほうがよいかもしれません。 文字化けが心配なら、 Content-type: text/html; charset=EUC-JP とすれば、「まず」文字化けはしないと思います。

katsudon
質問者

補足

ありがとうございます。 たしかにShift_JISでデータに記入しています。 たしかに下のような対策を講じるとエラーは起きなくなりました。 Shift_JISだとエディタで編集するのに便利だったので、 他のスクリプトの全てのデータがShift_JISで保存しています。 Shift_JISだとパターンマッチは不可能ということなのでしょうか? 今のところ下の対策で凌いでいますが、 もし対策があれば教えてください。よろしくお願いいたします。 &jcode::sjis2euc(\$FILE{Keyword}); &jcode::sjis2euc(\$CHAT{Message}); $CHAT{Message} =~ s/$FILE{Keyword}/$FILE{Keyword}<a href="http:\/\/$FILE{Link}">*<\/a>/g; &jcode::euc2sjis(\$CHAT{Message});

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

関連するQ&A

  • cgiのログをcsvとして出力、編集がうまくできません

    フリーのcgiスクリプトを利用して入力したものが表の ような形式で表示できるWEBページを作りました。 データをいくつか入力した後、ログファイルの「<>」を 「,」に置換し、csvファイルとしてエクセルで読み込み、 エクセルでデータを沢山入力してからまた逆に置換し、 cgiのログに戻そうとしたところ、エクセルで開いた 時に文字化けしています。 ログデータそのものは、メモ帳で開くと文字化けしてい ますが、Tera Padで開くとちゃんと見えます。 なんとかしてエクセルでうまく表示させ、編集すること はできないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • Apacheログに外部サーバのファイルアクセスを残したい

    Apache(Windows2000サーバ)にて社内イントラを構築しています。 ApacheにHTMLファイルは格納してあり、そのアクセスログは問題なくあります。 このHTMLファイルに下記のようにリンクしている、 <a href="file://別のサーバへのパス/(excelやwordなど)ファイル"> ネットワーク内の別サーバへのファイルへの個別のアクセスを Apacheのアクセスログに残す方法は無いのでしょうか?

  • CGIのtextareaへのタグの表示

    CGI(Perl)でWebのメモ帳のようなプログラムを作っています。 何種類かのHTMLタグの使用もできるようにしてあり、更に タグ説明のために &lt; &gt; などを記入することもあります。 初回の記入をそのまま表示させる場合は問題ありませんが、一度記入した内容を 編集のためにブラウザに再表示させ、更にそれを更新すると タグの <> と &lt; &gt;が どちらも <>に変換されてしまい、説明中の HTMLタグ文字列がタグになってしまいます。 例えば A: 最初の記入時「&lt; a href・・・ &gt; はリンクタグ」などと記入してアップロード B: サーバーログには「&lt; a href・・・ &gt; はリンクタグ」のまま記録される C: 編集のためにその記事を再表示させるとブラウザが「<a href・・・ >はリンクタグ」 と表示する D: 別の部分を編集後再アップロードするとログには <a href・・・ > がタグとして記録される E: 以降の表示では <a href・・・ > の部分がリンクタグとして扱われ「はリンクタグ」にリンクがかかる というような問題に悩んでいます。 textarea 内では <code>タグも使えなさそうで・・・ 思案の末、 textarea への送信時だけ 「 &lt; 」を 「<<」などとして送信し、CGIが「<<」を受け取ったら &lt; に変換してログ記録する などのローカルな方法を考えましたが、あまりスマートではないかと。 定石のような方法はないのでしょうか?

    • ベストアンサー
    • CGI
  • function()を初めて使いました。エラー。

    かなり初歩的な質問をさせていただきます。 初めてfunction関数を使ったのですが、下記のようなエラーが出ました。 Warning: array_reverse() [function.array-reverse]: The argument should be an array in E:\Web\Chat2\chat\logpage.php on line 99 Warning: array_reverse() [function.array-reverse]: The argument should be an array in E:\Web\Chat2\chat\logpage.php on line 100 Warning: array_reverse() [function.array-reverse]: The argument should be an array in E:\Web\Chat2\chat\function.php on line 38 Warning: flock() expects parameter 1 to be resource, boolean given in E:\Web\Chat2\chat\function.php on line 41 Warning: fputs(): supplied argument is not a valid stream resource in E:\Web\Chat2\chat\function.php on line 48 Warning: flock() expects parameter 1 to be resource, boolean given in E:\Web\Chat2\chat\function.php on line 49 Warning: fclose(): supplied argument is not a valid stream resource in E:\Web\Chat2\chat\function.php on line 50 チャットを作っていて、何度も使う文をfunctionでまとめて、別ファイルに保存し、 requireで呼び出して、str();で使うとこうなりました。 function load(){ $log_data = "./data/log".$_GET['id'].".cgi"; $log_file = file($log_data); $member_data = "./data/member".$_GET['id'].".cgi"; $member_file = file($member_data); } このような形で使っているのですが、何かfunctionを使うにあたって注意などがあれば教えていただけませんか?

    • 締切済み
    • PHP
  • キーワードをハイライトさせたいのですが。。。

    phpで検索キーワードのハイライト処理をしたいのですが //置換対象文字列 $content= "検索対象文字列hogehoge<a href=\"hogehoge\">リンク</a>します。hogehoge"; //キーワード $search = '/(hogehoge)/i'; //置換後の文字列 $replace = '<strong>${1}</strong>'; //置換する $content = preg_replace($search, $replace, $content); echo $content; これですと、HTMLタグ内の「hogehoge」まで置換されてしまいまして。。。 これを回避するための正規表現を教えていただければ幸いです。 どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • 検索キーワードのデコードについて

    アクセス解析しようとcgiでログを取り始めました。検索キーワードの 集計もしたいと思い、試行錯誤したのですが、キーワードを取りたい 検索エンジンのうち「Google」と「MSN」からのものが文字化けしてしまいます。 文字コードの問題だと思うのですが、うまくいきません。 できるだけ簡単にこれらをデコードする方法があれば、大変助かるのですが・・・ デコード部分のスクリプトなど貼っていただけるとうれしいです。 よろしくお願いします!

  • apple computerのロゴのフォントについて

    6色リンゴのロゴで、apple computerの文字が 明朝体みたいなのではなく、丸ゴシックみたいなフォントでかかれているのは、何年くらいまで使われていたのですか? それが使われていたころ、日本では販売されていたのですか?

    • ベストアンサー
    • Mac
  • テキスト編集ソフトについて

    テキスト編集ソフトをさがしています。有料/無料は問いません。 改行コードの変換と文字コードの変換ができるもの、置換・検索の機能に優れたテキストエディターを教えてください。 アップルのコンピュータとデータのやりとりをするのにスムーズにしたいと思っています。

  • iPodで使われているフォントを使ってステッカー(シール)を作りたい

    Apple Computerが現在使用しているフォント(Myriad Pro Semibold)を使って、車のガラスの内側から貼れるようなステッカー(つまり左右が逆転しているステッカー)を作りたいと考えております。いくつかよくわからないことがあります。 1.フォントはどうやって手に入れたらいいでしょうか?PCでも使えるのでしょうか? 2.文字を編集するソフトは何を使えばいいのでしょうか? 3.文字以外のところを全て透明にしてプリントアウトすることは出来るのでしょうか? どれか一つでもいいのでご回答お待ちいたしております。

  • 秀丸 置換について

    NASのログをDB取り込み用の、テキスト修正を秀丸で行っているのですが、うまく置換できません。 ○文字列 Jan 12 13:25:19 "NASホスト名" file_smb[17142]: [User:”ユーザー名”(192.168.133.22)] ”File Open””(Read)” /mnt/array1/”フォルダ名”/”サブフォルダ名"/”ファイル名” ※”文字列”の中は変化します。 ○置換後 日時 ,”NASホスト名”,"ユーザー名",”IPアドレス",File Open,(Read),"フォルダ名",”サブフォルダ ファイル名” 【問題】   "(" → ","   ")" → "," で置換をかけていたのですが、ファイル名に"(” ”)"を使われており、一気に置換できません。 出来るかわかりませんが例えば、先頭から100文字目までの、"("を","へ置換する等 うまく置換できる方法をアドバイス頂けましたら幸いです。

このQ&Aのポイント
  • 複数のパソコンで無線LAN接続をしていて問題なく印刷は出来るのだが、後から追加で有線LAN接続したらパソコンから印刷出来なくなった。メインパソコンはUSB接続なので異常は無いようです。
  • Windows11を使用しており、普段は無線LAN接続で印刷していますが、異常時には無線LANと有線LANの接続を試みましたが、印刷ができませんでした。
  • お困りの方の中には、MFC-J738DWNの無線LAN接続では問題なく印刷できるが、有線LAN接続した場合に印刷ができないというケースがあります。このトラブルの解決方法をご紹介します。
回答を見る

専門家に質問してみよう