ベストアンサー Perlでさらに気の利いた文字列処理モジュールはありますか? 2005/03/21 12:03 Perlで2つの文字列を比較して、違いが見つかった以降の文字列を取得するような さらに文字列処理に便利なモジュールを探しております。 みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー zebedeer ベストアンサー率66% (80/121) 2005/03/21 21:04 回答No.1 この辺はどうでしょう? そのものずばりじゃなさそうですが、 割と近いことができそうな感じ。 参考URL: http://www.google.co.jp/search?hl=ja&q=perl+diff&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Perl 関連するQ&A トリガー内でperlモジュールを呼び出したい! mysql5.0.27で、テーブルにinsertしたデータ(文字列)をperlモジュールで変換し、変換後の文字列を別のテーブルにinsertしたいのですが、方法がわかりません。 perlを使いたいのは、すでにモジュールがあるということと、他の言語では文字列変換が面倒という理由です。 perlが呼び出せないのなら、Cとかで作り直してもいいのですが、まずはperlの呼び出し方を教えてください。それができなければ、Cでも構いません。 できそう/できないだけでもご存知でしたら教えてください。 Perlでの文字列処理について プログラム初心者です。 Perlで下記のような文字列処理のプログラムの書き方がわからず、質問させて頂きました。 【内容】 FILE_A.txtが「!」マークで区切られていて、「!」マークの下行の文字列をIPアドレスの右横に移動したものをFILE_B.txtに出力するという処理です。 「!」マークの下行の文字列の「name」は共通です。 -------------------------------------------- 【FILE_A.txt】 ! name abcdeLV 123.123.123.123 123.123.123.124 123.123.123.125 ! name fghijLV 10.10.10.11 10.10.10.12 10.10.10.13 10.10.10.15 10.10.10.16 ! -------------------------------------------- ↓ -------------------------------------------- 【FILE_B.txt】 123.123.123.123 abcdeLV 123.123.123.124 abcdeLV 123.123.123.125 abcdeLV 10.10.10.11 fghijLV 10.10.10.12 fghijLV 10.10.10.13 10.10.10.15 fghijLV 10.10.10.16 fghijLV -------------------------------------------- 上記のようなPerlでの処理を具体的に教えて頂ければうれしいです。 本サイトのようなものを利用するのが初めてですので、不手際があるかもしれませんが なにとぞよろしくお願いいたします。 Perlの文字列処理関数? Perl5.8も視野にいれた、便利な文字列関数を探しています。 trim rtrim ltrimを行う関数ですが、こういうものは自作するべきでしょうか? VBやPHPには標準であるようですが、Perlは文字コードを備えた一般的なものは 存在するのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム Perlでのloginモジュールを探しています。 Perlでのloginモジュールを探しています。 perlでSNSのようなサイトを作っていて、login周りのモジュールを探しています。 基本的にはmixiのような感じのものをイメージしているのですが、そもそもそのようなモジュール等はあるのでしょうか?それとも簡単に環境変数とIDとを一時的に紐付けて処理をおこなっているのでしょうか? あるかないかもわからないので参考になるものは何でもかまわないので宜しくお願いします。 perlでの入れ子文字列削除 perlを利用して文字列処理を行う際に、入れ子になった文字列を削除したいのですが、正規表現のうまいやり方が思い浮かびません。 例としましては 今日は雨(雪ではない(この辺の処理に困っている))が降っている。 という文章を 今日は雨が降っている。 と処理できるようにしたいです。 $data =~ s/(.*?)//g; $data =~ s/)//g; というやり方では、3重以上になった時の処理ができません。 できれば何重になっても可能な方法をご教示ください。 Perlでの文字列置換に関して Perlでの文字列置換についてうかがいます。 文字列中からHTMLタグを排除しようと思うのですが、 タグ部分のみをうまく指定することができず、困っています。 どうか御知恵をお貸し下さい。 Perlで文字列の切り出しをするには? おせわになります。 Perlであるパターン間の文字列を取り出す方法はあるのでしょうか?例えば、"Monday<From>Thursday<To>Friday"という文字列の<From>~<To>間、つまり"Thursday"を取り出したいのですが、うまくいきません。 できればパイプでつないでいくために、以下のような正規表現でかければ最高なのですが… echo 'Monday<From>Thursday<To>Friday' | perl -e '○○○○' もう1週間以上ここではまっています。Perlってはまると長いです… perlでファイルの拡張子を除いた文字列の取得 perlでファイルの拡張子を除いた文字列を取得するにはどうすればいいんでしょうか? foo.txt --> foo aaa.pl --> aaa splitを使用して @array = split(/./,<filename>) $value = $array[0] としてもうまく取得できないんですが。。 よろしくお願いします。 perlでランダムな文字列を作りたい perlでランダムな文字列を作成する簡単な方法はありませんか? 文字数と文字種を指定できるとありがたいのですが。 $foo = hoge(8,'a-zA-Z0-9'); みたいな感じでできるといいのですが。 お願いします。 xxxxxxx = "aaa bbb ccc"という文字列の""で囲まれた部分を処理したい 最終的にリストにしたいので、正規表現で""内を取り出した後に split /( | )/のような処理をすればいいのだと思うのですが、まず第一に""内の文字列を取り出せません。 はじめのxxxxxxxは決まった文字列ですので、これを変数にできれば早いんですがそういう処理はできないですよね? フォーマットは決まっているのですが、どうやって""内の文字列を取り出せばいいのでしょうか? @ARGV =~ s/\".*\"$/$1/; こういう処理ではうまくいきませんでした。 Perlを触るのが初めてなので、ネットで調べていますがさっぱりわからなくて途方に暮れています。 よろしくお願いします。 文字コードから文字列への変換 よくわからないタイトルですみません(汗。 標準入力からデータを渡すと、I/Oをしてくれるというモジュールを書いているのですが、当初、テキストのみの設計のつもりだったのが、バイナリを扱うはめになってしまいました。 それで、バイナリはstdinから読めなさそうだったので、0xXYZという文字列にしてからstdin経由で渡そうと思ったのです。 今回の質問は、その文字列で書かれた16進コードを文字に直す方法なのです。 つまり、char buf[80] = "0x414243"という文字列を渡した場合、char buf2[80] = "ABC" という文字列を得たいのです。(0x41="A") 変な希望ですが、何通りか試したのですが、根っからのテキスト処理大好きPerl人間なので、Cの知識の無さに挫折してしまいました。 アドバイスをよろしくお願いいたします。 ファイル中の特定文字列を繰り返す処理 文字列操作についてご教示いただけますでしょうか。 特定文字列(FFF)を基準にして、次のFFFが現れるまでの行にFFFの行にある文字列を先頭に挿入したいと考えています。 エクセルだと簡単にできるのですが、行数が多いためperlで処理をしようと考えています。 以下のようなテキストを FFF あああ text1 text2 text3 ... FFF えええ text6 text7 text8 ... 以下のようにしたいと考えています。 FFF あああ あああ text1 あああ text2 あああ text3 あああ ... FFF えええ えええ text6 えええ text7 えええ text8 えええ ... どのような処理にするとよいでしょうか? よろしくお願いいたします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 文字列比較の演算子 Perl の世界から PHP にやってまいりました。 Perl では、文字列の比較には専用の演算子がありまして、 str1 eq str2 とすると、二つの文字列が同値かどうか調べられますが、PHP にはこのような演算子はないのでしょうか? www.php.net のマニュアルを見ても、そのような演算子がありません。 == 演算子が使えるものかと <?php $str1 = "this is string" ; $str2 = "this is string" if( $str1 == $str2 ) { echo "two string is same" ; } ?> などを試してみるとうまくいくようですが、www.php.net のマニュアルには「文字列を数値化して比較する」と書いてあり、本当に文字列比較が出来るか確信がもてず…。 結局、文字列を比較したいときには strcmp を呼び出していますが、これは PHP 的には正しいのでしょうか? [初心者]perlで文字列抽出 perlの超初心者です. 標準出力された文字の中から任意の文字列をperlで抽出したいのですが... 例えば, 1 lsコマンドでファイル一覧を表示 2 表示された中から任意の文字列とマッチするものを抽出 3 マッチした文字列の後ろの文字を知る(拡張子とか) 4 さらに,1~3を'perl hoge.pl'とコマンド打つだけのワンアクションでやりたい. という感じなのですが... 勉強を始めたばかりなので,どういったキーワードを勉強すればよいのか,見当つかない状態です... おそらく,私がしょうもない質問をしているのだろうとは思いますが, 何かヒントでも教えていただければ幸いです. 周りに詳しい人物もいないので,なんとか頑張って習得したいと思っています. よろしくお願いしますm(><)m Perl 文字列を配列に直す方法 こんにちは。 今Perlをやっているのですが、変わった文字列を配列に上手く入れて、配列を操作するところで行き詰っています。 例として、 windows95 windows98 windows2000 windowsXP windowsVista このように並んだものを、配列に入れて処理を行いたいです。 ただコレを$wordsに入れて$words = @wordsとしても、その後の処理に詰まってしまいます。 その後の処理コード自体は使えるものなので、配列の入れ方に問題があると思っているのですが、私の中で答えを導くことはまだ出来ていません(汗 解決方法または良いやり方があれば、是非教えていただきたいです。 宜しくお願いします。 Perlでの文字列操作について Perlを使用しての文字列操作について教えてください。 たとえば以下のような数字とアルファベットが順に並ぶ文字列があるとします。 11A4C555D67B114B9423C アルファベットは1文字ですが、数字は何個でも連続で並びます。 この文字列を「数字アルファベット」の部分で分割し、配列に格納したいのですが、うまくいきません。 @array=('11A','4C','555D','67B','114B','9423C') どなたか教えてください。よろしくお願いいたします。 文字列の処理について教えてください。 いつもお世話になってます。 知恵を貸してください。 2009/07/13 11:00:51,【その他】,POS01 (Rev 1.05),Func_Rpt(1) Start:gInt_Cur_No=2 こういった文字列があります。(ファイルから読み込んだときの1行) この文字列から Func_Rpt(1) → 1 Start:gInt_Cur_No=2 → 2 をそれぞれ取得したいのですが、どうすれば簡単に取得できますか? 前後の文字が左右するのでmid関数などは使えません・・・ 文字列の取得について Accessのモジュールを使ってある文字列から指定した文字数の文字列を取得しようとしています。 A:"あああああ" & vbcrlf B:"いいいいい" & vbcrlf C:"うううううう" & vbcrlf D:"えええええ" & vbcrlf A~Dまでフィールドがあり、vbcrlfは改行です。 この文字列に対して以下の処理を実行します。 (1)変数mojiにA & B & C & Dを代入 (2)mojiを全角に変換 (3)Left(moji,20)で左から20文字取得します。 (4)mojiをテキストボックスに登録します。 (5)入力チェック処理 ・フィールドサイズが20文字以内か? ・全角で登録されているか? →登録後のイメージ ---------------- あああああ いいいいい ううううう ---------------- テキストボックスには全角でしっかり登録されているようにみえるのですが、 どうしても全角で登録してくださいというメッセージが表示されてしまいます。 うううううの次の改行を削除すると、メッセージはでなくなります。 この改行が半角になっているのでしょうか? アドバイスよろしくお願いいたします。 特定文字列で囲まれた範囲を抜き書きするためには? 特定の文字列で開始され、特定の文字列で終了するテキストの一部を抜き出すためには、コマンドラインからは perl -ne 'print if /開始文字列/ .. /終了文字列/' file.txt でできると思うのですが、これがたとえば $page 変数に入ったテキストで同様の処理を Perl 内部のスクリプトで行う時にはどうすればいいのでしょうか? while(<$page>){ ... } とかやって1行1行処理してみようと思ったのだけど、できません。 文字列に\nを入れたい データベースAccessからデータを取得しTextFieldにその取得したデータを表示させたのですが、文字数が長くてTextFieldに収まらなくなっしてしまいました。そこで取得した文字列に新たに\nを入れて改行させようとしています。 String str = "文字列40字以上…" if(str.length >= 40){ ***処理内容*** 文字列が40字以上なら40文字目のすぐ後ろに\nを足して改行させて表示させたい。 ただし、40文字目を区切りとして改行させ表示させる。例)96文字なら3行に表示させるようにする。 } このような処理を行いたいのですが、良い方法がわかりません。アドバイスをお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など