ベストアンサー Perlでの文字列置換に関して 2001/03/11 07:12 Perlでの文字列置換についてうかがいます。 文字列中からHTMLタグを排除しようと思うのですが、 タグ部分のみをうまく指定することができず、困っています。 どうか御知恵をお貸し下さい。 みんなの回答 (5) 専門家の回答 質問者が選んだベストアンサー ベストアンサー cocky ベストアンサー率57% (232/402) 2001/03/11 10:29 回答No.1 s/<(.*?)>//g; で消えませんか? また掲示板などでHTMLタグを無効化するのであれば、 s/</</g; s/>/>/g; と変換して、HTMLタグをそのまま画面に表示させてしまう手もあります。 質問者 お礼 2001/03/13 19:42 ありがとうございました。 ちょっと余計なことをし過ぎていたようで、 仰る方法でうまくいきました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (4) noname#6448 2001/03/13 00:28 回答No.5 えーーー、同じようなことをした経験あります。 $data = ~s#\"##g; $data = ~s#<.*>##g; 一部のタグを消したいときは $data = ~s#</p>##g; $dataはタグが入っています。 / ではなく # を使ったのは</p>を消したいときに \を付けるのがめんどうだったためです。 最後のgは$data内の<p>を全て消すという意味。 一行目で全ての、ダブルクォーテーション全部消去しました また、ソースが大文字か小文字か分からないので trコマンドを使って全て小文字にあらかじめしておきます 質問者 お礼 2001/03/13 19:46 ありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 ykc ベストアンサー率29% (28/95) 2001/03/12 23:38 回答No.4 複数行に対処したいなら、$scalarなどに入力データを全部つなげておいて、s/<(.*?)>//g; でいいとおもいます。 あとはsplitで分解すれば、問題ないかと。 エンティティの無効化は、 %ent = ('&' => 'amp', '<' => 'lt', '>' => 'gt', '"' => 'quot'); と指定して、 s/([&<>"])/&$ent{$1};/g; ってやると、ちょっとかっこいいですよ。重たいですけど。 質問者 お礼 2001/03/13 19:45 ありがとうございました。 エンティティの無効化は目から鱗でした。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 dany ベストアンサー率35% (27/77) 2001/03/12 10:32 回答No.3 みなさんが書かれている方法で普通は問題ないですが、厳密にいうと <!-- <br> --> → --> <foo bar=">"> → "> なんてことになるので、また別の方法があります。 詳しくは下記URLを参照してください。 勉強になるページです。激しくオススメ! 参考URL: http://www.din.or.jp/~ohzaki/perl.htm#Tag_Remove 質問者 お礼 2001/03/13 19:43 ありがとうございました。 ご紹介のページはとても参考になります。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 cocky ベストアンサー率57% (232/402) 2001/03/11 15:11 回答No.2 何か半角文字だと見にくくなってしまったので、置換の内容だけ全角で書き直しますね。 上からそれぞれ s/<(.*?)>//g; s/</&lt;/g; s/>/&gt;/g; です。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Perl 関連するQ&A こんな文字列置換ツールもしくは置換法を探しています。 こんな文字列置換ツールもしくは置換法を探しています。 共通した文字列「文字列A」を含むHTMLファイルが3つあります。 ファイル名は簡単に「1」、「2」、「3」とします。 この3個のファイルの「文字列A」を 置換候補(たとえば「文字列あ」、「文字列い」、「文字列う」)を指定し、 一括で置換できるツールもしくは方法をご存じの方はお教えいただけないでしょうか? ツールの場合、置換候補をCSVファイルなどで一気に指定できればなお良しです。 よろしくお願いします。 Javascriptで特殊文字を置換する方法 表題の件で分からず教えてください。 PerlでHTMLとJavascript(HTML埋め込み)を作成しています。 Javascript(On Click)で、文字列を置換させたいのですが、うまくできません。 (最終的にやりたいことはTextAreaに埋め込んだタグ付き文章を「プレビューする」ようなイメージです) ■置換前の文字列 $body$ ■置換後の文字列 任意の文字列(タグを含む) ネットで調べたところ次の方法でできるようだったので試しましたが、できませんでした。 var rgexp = new RegExp("\$body\$", "g"); str = frm.preview.value.replace(rgexp, "■■■"); 「$」とエスケープ文字をはずすとうまくいくので、多分「$」で失敗しているのだと思いますが 解決が分かりません。 ※エスケープをはずすとPerlの出力時に怒られてしまいます お分かりになる方いらっしゃいましたらお願いします。 文字列置換 文字列置換 htmlのbody内のタグではない(画面に表示される)特定の文字列を別の文字列に置き換えるコードはどう書けばいいのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 文字列の置換 JAVAであるファイル内の文字列を置換するプログラム(日本語)を作りたいのですが、 ・ ・ String h_s; FileReader h_fr = new FileReader(in_filename); BufferedReader h_br = new BufferedReader(h_fr); while(true){ h_s = h_br.readLine(); if (h_s == null){ break; } ●文字列を置換するプログラム● } ・ ・ ここの●文字列を置換するプログラム●にあたる適当な関数って何かありますか? たとえばperlでいうと↓みたいなものなのですが・・・ s/置換前文字/置換後文字/g よろしくお願いします。 タグ内を除く文字列置換 ある特定文字を、HTMLの任意のタグ「<xxx>」を除いた範囲で置換をしたい場合はどのような正規表現で表すことができるでしょうか? たとえば以下のようなHTMLコードがあり、 <a href="http://google.ne.jp"><img src="./google.png"> google </a> このgoogleというテキスト部分の文字をyahooに置換したい場合は、 <a href="http://google.ne.jp"><img src="./google.png"> yahoo </a> となってほしいです。上の例に限らず、どんなHTMLにも適用できるような汎用性のある方法はないでしょうか。 自分で考えてみたのですが、タグを一旦抜き取って、代わりの記号を置き、置換後に元に戻すと言う方法くらいしか思いつきません。 ファイル内の文字列を置換 掲示板利用させていただきます。 現在、ファイル内の特定の文字列を置換し、 保存する方法を探しています。 できればスクリプト言語を利用したいと考えています。 sedコマンドを使用して文字列置換を行ったのですが 置換前と置換後のファイルで 文字コードと改行コードが変わってしまうのでダメでした; 「ファイル内の特定の文字列を任意の文字列に置換し、置換前と置換後で改行コードと文字コードを変えない方法」 をご存知の方、ご教示ください。 bash,perl,javaのどれでも結構です。 よろしくおねがいします。 エクセルで、置換後の文字列を「01」にするには エクセル2000を使っています。 「新宿」という文字を「01」に置換すると、0が省略されて「1」だけになってしまいます。 書式を文字列に指定し、セルに直接書き込むと「01」と表示されます。 置換機能を使うと、書式に文字列が指定されていても「1」になってしまいます。 01は既にコードとして定義しているので、出来れば変えたくありません。 何か良い方法はありますでしょうか? Perlの文字列置換について Perlで文字列置換の業務をすることになりした。 Struts1からStruts2のJSPのタグの変換です。 (1)html:textarea property="aaa" styleClass="bbb" (2)s:textarea name="aaa" cssClass="bbb" (1)から(2)に変換したいです。 「html:textarea」が「s:textarea」に対応しており、その属性の「property="aaa"」が「name="aaa"」に対応、 「styleClass="bbb"」が「cssClass="bbb"」に対応するといった内容です。 aaaとbbbは任意の文字列 if ($str =~ /html:textarea/ ) { $str =~ s/html:textarea/s:textarea/; $str =~ s/property=\"(.+)\"/name="$1"/; $str =~ s/styleClass=\(.+)"\"/cssClass/; というように参考書を元に作成してみたのですが、変換は行われるものの、属性のpropertyとstyleClassの順番が逆だったり、ここに記載していない他の属性を間に入れたりすると変換ができません。 どなたか教えて下さい。 文字列の置換について Perl(CGI)のプログラムを作成しているのですが '金額=(税抜2000円) 2100円'という文字列を'[単価]2100円'に置換したいのですがうまくいきません。数字の箇所常には変わります。置換演算子で試してみましたが私の知識ではダメでした。周りに聞ける者がおりませんのでご教示お願いいたします。 textファイルにある文字列の置換について すみません。 PERL初心者のものですが教えてください。 例えば、a.txtに以下の文字があるとします。 1234567,1111,9,8 1234568,1122,0,5 .... この時、「9」と「0」を文字列 9を"あいうえお" 0を"さしすせそ" と置換したい場合、どのように文字列を置換すれば良いのか ご教授いただけると幸いです。 既に他の方が質問済みでしたら済みません。 文字列の置換 文字列の置換 たとえば, if(abcd) という文字列があったときに,これを while(abcd){ に置換するにはどうすればいいでしょうか(同じような置換をしたいところが文章中にいくつもあるとします).つまり,文字列の一部をそのままにして置換するということです.いまの場合だと if( → while( はできたとしても, ) → ){ は,文章中に“)”がたくさんある場合は難しいですよね.wordなら,ワイルドカードを使って if(*) とすれば,検索はできるのですが,そのまま置換すると while(*){ となってしまい,*がそのまま残ってしまいます.どうにかできないでしょうか? 文字列の置換で・・・ Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し その際に変換した文字数も表示してください。 basic→出力結果: "bbsic" 置換した文字数は1です。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Perl 特定のタグ内を置換しない 恐れ入ります。特定のhtmlタグ具体的には<h3></h3>タグないの文字列だけを除いて置換を掛けたいのですがなかなかうまくいきません。 $temp = s/[^<h3>(.+?)<\/h3>]$mojiretu1/<a href="$mojiretu2">リンク先</a>/; とした場合、<h3>タグ内の置換はされないようですが、置換後のリンク先の先頭部分が文字化けを起こしてしまいます。原因が分かる方いらっしゃいましたらご教授いただけたら助かります。 よろしくお願いいたします。 文字列に含まれているダブルクォーテーション( ")を置換する 文字列に含まれているダブルクォーテーションを除きたいのですが、これをSubstitute関数で置換しようとしてもうまくいきません。ダブルクォーテーションが文字列を指定するために使われるせいだと思うのですが、"を文字列として指定する方法はあるのでしょうか? よろしくお願いします。 長い文字列の置換を出来るエディタを教えてください。 数式Texのコマンドなんですが、1000文字の文字列を1500文字の文字列に置換しようとしたところ、255バイト以上のデータはきられてしまい、正常に置換できませんでした。 秀丸、Wordのソフトウェアや複数行置換のフリーウェアを探したのですが、正常に置換できませんでした。 このように1000文字を1500文字への置換等、長い文字列を置換できるソフトウェアがあれば教えてください。 jqueryで文字列を置換したいのですが。 jqueryで文字列を置換したいのですが。 例えば<a href="http://*****/database.cgi?keys10=検索文字01"> みたいなアンカーがあったとして、これの”検索文字”の部分のみを置換して 例えば<a href="http://*****/database.cgi?keys10=検索文字02"> の様に置換することは可能でしょうか。 何卒、宜しくお願いいたします<m(_ _)m> perlの文字列組み合わせ perlでプログラムを作成中です。 作成したモノはうまく動かないので掲載できませんが、 どなたかお知恵を貸してください。 入力文字列に対して 1をA、2をB、3をC に置換するプログラムを作成中です。 ただし、全ての組み合わせを出力したいのです。 つまり、”213”と入力すると回答は、 B13 BA3 BAC 2A3 21C 2AC B1C と出力したいのです。 プログラムとしては、入力文字列を1つずつを配列に入れて、それぞれの変換 をかけ、1つずつ組み合わせて出力しているのですが、どうもうまくいきません。 手法は特に固執してませんので、どの様な形でも結構です。 よろしくお願いします。 文字列置換 UNIXのコマンドで文字列の置換を試みています。 今回行いたい置換としては。。。 12年 1986年2月12日 14 などの文字列を NUM年 NUM年NUM月NUM日 NUM などに、連続した数字をひとまとめにNUMに置換したいと考えています。 文字列の置換方法としてsedコマンドがあると聞いてしらべてみたのですが、いまいいち理解することができませんでした。 自分で考えて試してみたコマンドが以下の通りです。 sed -e "s/\([1-9]\{1,2,3,4\}\)/NUM/g" filename が・・・まったく置換はされませんでした。 よろしければお教えください。よろしくお願いいたします。 Perl正規表現(置換) Perlを用いてテキスト中の文字列 /^\d+$|^\d+\.[05]{1}$/ を、以下の文字列に置換したい場合、 うまくやる方法はないでしょうか? /^[0]+$|^[0]+\.[0]+$/ 正規表現を使いたいですが、 1つ1つエスケープしていくのはさすがに・・・ よろしくお願いいたします。 VBScriptで文字列置換 VBScriptで文字列置換をさせたいので コーディングをご教授ください。 ----------------------------------------------- 置換前 あいうえお@,@aaaaaaaa@,@5648941248@ かきくけこさし@,@bbb@,@15249511456664654654@ 置換後 あいうえお@,@aaaaaaaa@,@111@ かきくけこさし@,@bbb@,@111@ ----------------------------------------------- 最後の@で囲まれた部分の数字を全て111にしたいのです。 注目のQ&A " Some " や " How " が入った曲。 ケーブルテレビのYouTube 何故、世の中には許される人と許されない人がいるの? トランスのプライマリーとセカンダリーを逆に!? Windows11にアップグレードしたいです。 好きな人を虜にする方法 施設で育った方とのお付き合いや結婚について PC組み立て後、映像が出力できず困っております。 中高年の恋愛は告白いらないですか? 恋愛相談 教えてください カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 3月生まれは不利?早生まれのメリット・デメリットを解説 筋トレで痩せやすくなる?基礎代謝アップ&アフターバーン効果の秘密とは! 🎥 ガンダムシリーズを見たい!どこから見るのがオススメ?🔍 花粉症が辛い…直し方ってあるの?🤧🌲 インフルエンザって何?市販薬は効くの?治療費も解説! あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございました。 ちょっと余計なことをし過ぎていたようで、 仰る方法でうまくいきました。