• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オリジナルタグをHTMLタグに置換する方法)

オリジナルタグをHTMLタグに置換する方法

このQ&Aのポイント
  • ユーザにHTMLの知識がなく、オリジナルのタグを入力させることによってHTMLタグに置換する方法を、PHPで実現したいと考えています。
  • <@hoge@@こちら@> などのオリジナルタグを <a href="hoge.html">こちら</a> のように置換したいのです。
  • ereg関数を使用してオリジナルタグを取得することはできますが、複数のオリジナルタグが1行にある場合に正しく取得できない問題があります。置換するにはどのような方法を取ればよいでしょうか?

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

  • ベストアンサー
  • alfeim
  • ベストアンサー率58% (114/195)
回答No.1

正規表現の特徴であるGreedyMatch(貪欲なマッチ)のためです。 確かperlではlazyMatch(ものぐさなマッチ)と呼ばれる最短マッチ用のOperatorがあった筈なのでpreg系関数でものぐさマッチ用に構文を書けばヒットすると思います。 詳細はこのあたりを参照してください http://www.ultraman.gr.jp/~momiyama/Learning_Perl/regular.htm まじめにこの手の作業をしようとすると構文解析する必要があるでしょう。 phpの中で構文解析するのもどうかと思いますが・・・ 本格的にやるんだったらjavaやCでコンパイラコンパイラやyacc、lexなどで検索すればヒントになる事柄が見つかると思います。

polco2001
質問者

お礼

早速のご回答ありがとうございます。 >確かperlではlazyMatch(ものぐさなマッチ)と呼ばれる最短マッチ用のOperatorがあった筈なのでpreg系関数でものぐさマッチ用に構文を書けばヒットすると思います。 早速試してみます。 >まじめにこの手の作業をしようとすると構文解析する必要があるでしょう。 わかりました。もう少し勉強する必要がありそうです。。。頑張ってみます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう