重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お詳しいかたお願いします。
例えば『新商品α』という文字をhtmlに書きます時には『新商品α』と書けば
良いと思いますので、元記事をhtml用に変換しますPerlプログラムを考え中です。

そこで、変換文字が1つだけの場合には
$data =~ s/α/α/ ; (検証していないので違っているかもしれません)
と書けば良いのかもしれませんが、αもβもγもと大量にある場合、何行も書いては
いられませんので
@jittaisannsyou = (α , β , γ , ……)
として配列に入れてしまって、もっと簡単な記述で置換したいと思っています。

しかし、方法がわかりません…

ギリシャ文字や記号など、大量に実体参照変換します方法をご存じのかた教えて
ください。

A 回答 (3件)

とりあえず、ハッシュに入れてそのkeysでループさせるのが手っ取り早いかと思います。



%character_refs = (
"α" => "α",
"β" => "β",
"γ" => "γ",
"δ" => "δ",
);
$data = "TESTαβγδTEST";
foreach(keys %character_refs)
{
$data =~ s/$_/$character_refs{$_}/g;
}
print $data;
    • good
    • 0
この回答へのお礼

ありがとうございます。
Perlと書かせて戴きましたけれど、実運用ではCGIでしたので
"α" => "α",
を工夫して
"α" => "α",
として画面出力させることが出来ました。

お礼日時:2018/06/15 20:29
    • good
    • 0
この回答へのお礼

ありがとうございます。
こちら、日本語までちょこっとヘンに…

お礼日時:2018/06/15 20:34

%entities = (


'α' => 'alpha',
'β' => 'beta',
...
);
foreach $c (keys %entities) {
$data =~ s/$c/&$entities{$c};/g;
}

ハッシュ %entities ですが、一から全て用意するのは面倒なので、以下のように手間を省いては如何でしょうか

1. HTML仕様書から実体参照のルール一覧 JSON ファイルを取得
https://html.spec.whatwg.org/entities.json
2. ルール一覧 JSON をハッシュ初期化構文に変換する perl スクリプトを用意
3. 変換したハッシュ構文から、必要な部分だけ抜き出し編集
    • good
    • 0
この回答へのお礼

ありがとうございます。
リストは毎回参照させて戴いていますサイトさんからExcelにコピペして
編集してしまいました。
SJISとUTF8問題も平行して流れていまして解決まで時間かかってしまい
ましたけれど、何とかカタチになりました。

お礼日時:2018/06/15 20:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!