• ベストアンサー

Perlの文字列処理関数?

Perl5.8も視野にいれた、便利な文字列関数を探しています。 trim rtrim ltrimを行う関数ですが、こういうものは自作するべきでしょうか? VBやPHPには標準であるようですが、Perlは文字コードを備えた一般的なものは 存在するのでしょうか?

  • Perl
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

Perlの場合ですと置換+正規表現でやるのが一般的だと思います。 ($trim = $str) =~ s/^\s*|\s*$//g; ($ltrim = $str) =~ s/^\s*//; ($rtrim = $str) =~ s/\s*$//;

関連するQ&A

  • 文字列検索後にテーブル書き出し処理

    VBにて文字列を検索し、必要な情報をテーブルの各々の項目へセットする処理を考えています。 【実際の文字列例】 AAAAA+111,BBB,CCCC+22,DDDD,EEEE,FFFF,GGGG+4444 ・・・ 文字列は1レコードが','(カンマ)で区切られ、 アルファベットが商品番号、数字がバージョンと考えて下さい。 商品番号は必ず存在しますが、バージョンは無い場合もあり、 バージョンが存在する場合は'+'(プラス)で商品番号とセットになる事を表しています。(バージョンが全く存在しない場合もあります) 既に商品番号のみをテーブルへセットする処理があり、その処理は下になります 【商品番号のみの処理】 dim pos1 dim pos2 = 1 dim itemNo LOOP pos1 := INSTR(文字列, ',', pos2); IF pos1 = 0 THEN itemNo := LTRIM(RTRIM(SUBSTR(文字列, pos2))); ELSE itemNo := LTRIM(RTRIM(SUBSTR(文字列, pos2, pos1 - pos2))); END IF; ~itemNoをテーブルへセットする処理~ END IF; EXIT WHEN pos1 = 0 pos2 = pos1 + 1 END LOOP 上記プログラムにバージョンを考慮した場合、どのように変更となるでしょうか?実プログラムをご教授くだされば幸いです。 素人の質問で申し訳ないのですが、宜しくお願い致します。

  • アクセスの関数のご教授を

    いつも、ご指導有難うございます。 アクセス2007で更新クエリを使用しています。 データは主に顧客データですが、顧客名のフィールド(データは外部からCSVでインポートしたものです)会社名の前と後ろに余分なスペースが入っています。 Trim関数、Ltrim関数、RTrim関数を使用して後ろにあったスペースは消すことが出来たのですが、どうしても文字列の前にあるスペースが消去できません。(Ltrim関数を使用しました) データをみると「" "ABC商事」のように" "が消えません。 何か使用方法に違いがあるのでしょうか。 ご指導をお願い致します。

  • Perlでさらに気の利いた文字列処理モジュールはありますか?

    Perlで2つの文字列を比較して、違いが見つかった以降の文字列を取得するような さらに文字列処理に便利なモジュールを探しております。

    • ベストアンサー
    • Perl
  • 文字間の空白の削除を教えてください。

    全角文字の文字間にある空白を削除したいです。 山 田 太 郎 → 山田太郎 下記のとおり置き換えようとしてもダメでした。 select replace('山 田 太 郎',' ','') from user_master; 左空白削除(ltrim() 関数)、右空白削除(rtrim() 関数)、左右空白削除(trim() 関数)などは、ありますが。。。 文字間の空白削除は、どうすれば良いのですか?

  • 文字列関数について

    よろしくお願いします。 「abcdefghijklmn」 このような文字列から dとjので囲まれた文字列「defghij」を 抜き出したい場合はどうすれば良いでしょうか? 正規表現を使用するのでしょうか? 便利な関数や方法がありましたら教えてください。 お願いいたします。

    • 締切済み
    • PHP
  • PerlでPHPのfsockopen関数のようなものはありますか?

    phpでは fsockopen関数があり、ターゲット・ポート・エラー番号・エラー文字列・タイムアウトを設定すれば、結果を文字列として取得できます。 これをperlで同じことをさせたいのですが、簡単なサンプルがありましたら教えてください。

  • PHP でyyyy/mm/dd形式の文字列から日付への変換方法、文字列処理関数

    標記の件で質問です。(環境 : PHP 4.3) (1) 標準関数で、日付から和暦の曜日を取得することは可能でしょうか? 手元の市販書籍を見た限りではなさそうでしたので、下記のような関数を書いてみました しかし、引数にyyyy/mm/dd形式の日付 (例えば、2004/07/01 ~ 07/31) を指定して確認したところ、常に木曜 と判定されてしまいます。 yyyy/mm/dd形式の文字列は、日付型とは認識されないのでしょうか、それとも別の問題でしょうか? function GetWeekDayNameJp($DateTime) { $Number = strftime("%u", $DateTime); switch ( $Number ) { case 1: return "月"; break; case 2: return "火"; break; case 3: return "水"; break; case 4: return "木"; break; case 5: return "金"; break; case 6: return "土"; break; case 7: return "日"; break; } } (2) 標準関数で、yyyy/mm/dd 形式の文字列から日付型への変換は可能でしょうか? (=VBのCDate関数に相当するもの) これも、手元の市販書籍を見た限りではなさそうでしたが......? 手組みで作る場合、どのように実装すればよいでしょうか? (3) VBとの機能対応表 上記の処理を自前で実装するとすれば、文字列の左4桁(年)、中2桁(月)、右2桁(日) を切り出す (VBのLeft$、Mid$、Right$ 関数に相当) ことになると思いますが、どの関数 を使用すれば可能でしょうか? また、VBとPHPの機能対応表があればご紹介頂けないでしょうか? http://ns1.php.gr.jp/mailman/listinfo/php-dev も調べてみましたが、必要な情報を発見できませんでした。 (見落としているかも知れませんが....)

    • 締切済み
    • PHP
  • PHP5で度忘れしたのですが、文字列の改行コードを削除する方法ですが、

    PHP5で度忘れしたのですが、文字列の改行コードを削除する方法ですが、 1度で "\r\n", "\n", "\r" を削除する方法が知りたいです。 $text = rtrim($text, "\r\n"); $text = rtrim($text, "\n"); $text = rtrim($text, "\r"); を1回で・・・ 話は変わりますが、PHP6はもう普及しているのでしょうか?

    • ベストアンサー
    • PHP
  • VB2005の文字列関連の関数について

    VB2005で ある文字列中の特定文字の位置を返す関数はありますか? たとえば "1234567890" という文字列中で"56"という文字列は "5"番めにあるというような。 N88BasicのPOS$のようなイメージです。

  • [初心者]perlで文字列抽出

    perlの超初心者です. 標準出力された文字の中から任意の文字列をperlで抽出したいのですが... 例えば, 1 lsコマンドでファイル一覧を表示 2 表示された中から任意の文字列とマッチするものを抽出 3 マッチした文字列の後ろの文字を知る(拡張子とか) 4 さらに,1~3を'perl hoge.pl'とコマンド打つだけのワンアクションでやりたい. という感じなのですが... 勉強を始めたばかりなので,どういったキーワードを勉強すればよいのか,見当つかない状態です... おそらく,私がしょうもない質問をしているのだろうとは思いますが, 何かヒントでも教えていただければ幸いです. 周りに詳しい人物もいないので,なんとか頑張って習得したいと思っています. よろしくお願いしますm(><)m

    • ベストアンサー
    • Perl

専門家に質問してみよう