あなたが今質問に出しているCGIファイルをメモ帳で開いて、又はメモ帳を起動してその中にCGIファイルをマウスでつかんでぶち込んで$abc=”<b>(←この部分と)$abc</b>(←この部分)”;
にマウスカーソルを合わせて、それぞれワンクリックした後バックスペースキーを3回ずつ押すと消せます。
または4番目の回答で出てるとおり、その太文字にする処理がいらないなら、
$abc=”<b>$abc</b>”;(←ここの部分)
にマウスカーソルを合わせて、ワンクリックした後、バックスペースキーを19回押すと消せます。
両者とも消した後に「ファイル」→「上書き保存」をすれば完成かと。
上の方々の回答をとコメントを見るとこんな回答がでてきます。
他の方が作ったCGIファイルも普通のファイル同様に、自分で書き込んだり編集することが出来ます。
コメントを見ると$abcにBタグを入れた後に、そのBタグを消したいと考えているように見えますが。正直それは無駄な処理じゃないでしょうか。Bタグが不要なら最初からBタグを入れる処理をしなければいいだけだと思います。
書き込みエラーが起こって、もしかしたら二重カキコになってるかも知れませんが、そのときはごめんなさい。
■置換演算子
CGIはPerlで書かれたものですよね?
$str = ~s/$strの置換したいところ/置換する文字列/;
で置換された文字列が帰ってきます。
$str = ”<b>あ</b>”;
のとき、
$str = ~s/<b>/<xyz>/;
とすると、
$str = ”<xyz>あ</b>”;
になるわけです。
<xyz>の部分を空白にすることで、「<b>」の部分が空白となり、結果として「<b>」を消すことが出来ます。
詳しくはURLをどうぞ。
http://www.hatena.ne.jp/awindow?qid=1055478512
awindowさんのプロフィール - はてな
URLはダミーですが。
$abc = substr($abc,</b>,-4) ;
$abc =~ tr/<b>//d ;
コレで出来ました。
1行目で後の“</b>”の部分を削除して
(正確には、後から4文字を消してます。)
2行目で前の“<b>”の部分を削除しています。
(“<b>”を“”に置換。)
$abcの部分に“<b>”を入れない限り大丈夫です。
$abc=~s/<b>//g;
$abc=~s/</b>//g;
$abc=~s/<B>//g;
$abc=~s/</B>//g;
でフィルタをかけてやる事によって可能
う〜んやってみましたができません。
フィルタってどういう役目をするのですか?
$abc =~ s/<b>//;
$abc =~ s/<¥/b>//;
これによって、$abc のみが抜き出せます。
やってみましたがCGIプログラムエラーでした。
回答の2,3はCGIでも使えるのですか?
http://anslasax.net/css-make/property/font.html#f-weight
CSS解説 -移転のお知らせ-
済みません、お求めの答とは違うと思いますが、こういう解もありということで。
Bタグのスタイルとしてfont-weight:normalを指定すれば表示上太字には見えません。
変数にタグ自体を挿入してしまうというのはあまり美しい処理ではないような。
もし$abcを太字で表示する部分が1ヶ所もないなら$abc=”<b>$abc</b>”という処理自体を削除してしまえば良いし、どうしても一度太字化したものを元にも度したいというのであれば、
$abc = s#</?B>##g
でBタグだけを削除できると思いますが。
#がコードに入っている時点でもうムリではないでしょうか?
さっきからコードに入っているsって何ですか?
CGIで使えますか?
$abcの中には文字列として「<b>$abc</b>」が入っている訳ですから、その文字列の中から<b>,</b>を消せば元に戻ります。
どうやって?
さっきからその話をしてるんですけど?
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k08.htm
CGI-Perl 基礎編 (その八) 正規表現、マッチパターン、置換演算子、変換演算子 - SAK Streets
「s」というのは、文字列を置換するときに用いる置換演算子です。
$abc =~ s/置換したい文字列/置換後の文字列/;
やりたいことは、「<b>」と「</b>」を「」に置換する、すなわち、「<b>」と「</b>」を削除したいわけです。
$abc =~ s/<b>//;
$abc =~ s/<¥/b>//; ←¥は半角です。(はてな では、半角の「¥」を勝手に全角の「¥」に変換してしまうらしい・・・。(笑))
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | calculus | 2回 | 1回 | 0回 | 2003-06-13 18:40:54 |
2 | everfield | 3回 | 2回 | 0回 | 2003-06-13 19:28:01 |
3 | kuwa | 15回 | 12回 | 0回 | 2003-06-13 20:01:44 |
4 | hang | 9回 | 8回 | 0回 | 2003-06-13 22:56:36 |
5 | ishii-k | 4回 | 2回 | 0回 | 2003-06-14 13:44:47 |
6 | ishii-k | 4回 | 2回 | 0回 | 2003-06-14 14:09:33 |
7 | niku18 | 1回 | 0回 | 0回 | 2003-06-15 14:20:37 |
8 | rotten7 | 2回 | 1回 | 0回 | 2003-06-16 05:53:33 |
9 | mulukhiyya | 14回 | 13回 | 1回 | 2003-06-17 08:28:57 |
10 | aki73ix | 5224回 | 4698回 | 27回 | 2003-06-17 15:42:04 |
11 | ww10 | 35回 | 24回 | 0回 | 2003-06-17 21:18:41 |
12 | coolsurf | 3回 | 0回 | 0回 | 2003-06-18 14:39:24 |
13 | zifree | 175回 | 152回 | 6回 | 2003-06-19 15:04:19 |
既に$abcに太字で代入されちゃってるわけですから、後からもう一度を削除した式を代入しても、もう$abc=太字ですから太字を代入してることになります。
$abc=”$abc”;
の処理が行われた後どうやって戻すかがわからないのですよ。