• ベストアンサー

パターンマッチングにおいて変数を使いたい

pipipi523の回答

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.5

書き込んでから気が付いたのですが、 chomp();は引数を省略すると$_に対して動作するのでchomp($data);としないと意味が無いです

関連するQ&A

  • パターンマッチングにおいて変数を使いたい (2)

    「パターンマッチングにおいて変数を使いたい」の質問で無事解決したのですが、初心者で勉強不足で中身が理解できておりません。 新しい問題が発生しました。 標準出力では正しい結果が表示されます。しかしファイルに出力すると結果のデータが出力されません。どこが間違っているのでしょうか? また、data.csvのデータが膨大であるせいか標準出力においても、終了するまでやたらおそいです。 一瞬で該当データを表示(最終結果)してくれるのですが、その後数10分間何かの処理をした後、何も表示することなくプログラムが終了します。 この処理は何をしているのでしょうか? 高速化は可能でしょうか? open(KEY, "key.csv"); open(OUT,"> res.csv"); chomp(@keys = <KEY>); close(KEY); open(VAL, "data.csv"); while ($data = <VAL>) { chomp $data; for $key (@keys) { print OUT "$data\n" and next if $data =~ /$key/; } } close(VAL);

    • ベストアンサー
    • Perl
  • 正規表現のパターンに変数を指定したい

    perlでパターンマッチを行う際、正規表現で行いますが、パターン文字列内に変数を指定したい場合はどうすればよいのでしょうか? if ($ENV{HTTP_USER_AGENT} =~ /$pattern/) {  : } というようなことをしたいのですが、うまくいきません。 方法はありますでしょうか?

    • ベストアンサー
    • Perl
  • マッチングの方法

    文字列のマッチングについての質問なのですが、 たとえばですが、 変数1:あいうえおかきくけこ 変数2:あいうえおかきんんこ とあった場合、どれだけマッチしているかを考える方法は 10文字中8文字一致なので80%マッチ とか 先頭から7文字は同じであとは違うから70%マッチ とかを考えています。 質問は、 これ以外の判定方法でよいものはあるでしょうか? 上記2つの場合、やはり1文字1文字比較していくしかないでしょうか? perl関数など一通り調べてみたのですが、見つかりませんでした。 おねがいします。

    • ベストアンサー
    • Perl
  • $XXX を含んだ文字列の評価

    '$XXX + $yyy' という文字列($XXXと$yyyは単なる文字列)を評価したものを別の変数に格納したいのですがどうすればいいでしょう。 <?php $XXX = 10 ; $yyy = 5 ; $str = '$XXX + $yyy' ; $ans = なんとか文字列を評価; echo $ans ; ?> 表示 -- 15

    • ベストアンサー
    • PHP
  • ダミー変数

    エクセルでダミー変数を含んだデータをつくりました。 例えば、以下のようにです。 ABCD 0013 0109 1002 0106 A、B、Cがダミー変数です。Dはそのまま普通に数値として読ませたいです。 これをCSVファイルにしてRにインポートしたんですが、 そのまま統計分析するとエラーが出てしまいます。 ABC列がダミー変数だと認識していないからじゃないかと思ってるんですが(違うかもしれません)どうすればダミー変数と認識してくれるでしょうか。 (「数値変数を因子に変換」かと思ったんですが、 ABCを変換したい変数に選択すると、統計量の分析で選択できる変数から消えてしまってDしか出てこないんですがどうなってるんでしょう・・・あと水準名と数値のどちらを選べばいいかもよくわかりません・・) 基本的な質問ですみません。誰か助けてください。。

  • awkのパターンマッチングについて。

    特定web siteからfileをdownload後にファイルのmd5値 およびsha-1値をtextに抽出(出力)させたいと考えてます。 全体の流れとしては以下になります。 (1)web pageをfileとして保存 (2)htmlをtxtに変更しtext editerにてgrep ※grepに使用するキーはhttpsにすると下記情報が一行ず つ出力されます。 <tr><td><a href="https://download.xxxxxxxxxxxxxxxx"> href="#" title="MD5|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" href="#" title="SHA-1|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (3)上記をキーとしてawkからテキストに出力 ご質問させていただきた点は(3)のawkの部分です。 Forawk.exeを使用して実行したいのですがパターンマッチングが分かりません。 以下key選択方法についてご教示の程お願いします。 (1) httpsから始まるリンクを$1 (2) "MD5|"から始まる32行の乱数を$2 (3) "sha-1|"から始まる40行の乱数を$3 print $1 " " $2 " " $3 でうまく表示できるのではないかと考えています。 その他良い案等ありましたら合わせてご提示の程お願いします。

  • 関数スコープの変更の仕方について

    こんにちは。いつも勉強させていただいております。 VB2005始めて間もない初心者なので分かりにくい表現が多々あるかと思いますが よろしくお願いいたします。 現在2つのプロジェクトを作っていて、どちらもxxx.dllというファイルを参照しています。 やりたいことは、xxx.dll内でグローバル変数として宣言しているyyy変数の関数スコープを動的に変更したいと思っております。 プロジェクト1ではyyy変数の関数スコープをPrivate プロジェクト2ではyyy変数の関数スコープをPublic なお、このxxx.dllは他にも色々と使われており、基本はPrivateのままにしておきたいので、 最初からxxx.dllのグローバル変数のスコープをPublicにすれば良いということはできません。 特定のプロジェクトから呼び出されたときだけPublicにすることは可能でしょうか? どうぞよろしくお願いいたします。

  • 文字列で条件式を与えた場合のマッチング

    例えばこんな感じで、 %hash = ( 'key1' => '[文字列]', 'key2' => '[数値]', 'key3' => '[数値]' ); $query = 'key1=*[文字列]* & (key2>[数値] | key3=[数値])'; hashが、各種比較演算子,論理演算子,ワイルドカード(or正規表現など)を用いた条件式queryにマッチするかどうかを判断する方法を教えてください。 条件式が文字列で与えられた場合の処理に困っています。

  • 変数に格納されている特定の文字列のフィールド番号を抜き出したいと考えて

    変数に格納されている特定の文字列のフィールド番号を抜き出したいと考えております。 お世話になります。 現在、変数に格納されている特定の文字列のフィールド番号を抜き出したいと考えております。 例として下記名前を指定した変数が有るとします。 NAMEFILE="愛 麻衣 美衣 魔印" このとき「美衣」をgrepすると「3」を言う数値を返したいと考えております。 色々探して「match関数の RSTART」にて行いたい事と近い事が出来たのですが、 開始文字を抜き出す為、かえってくる数値は「6」となってしまいます。 行いたい事として、この場合区切り文字をスペースとし左側から数を抜き出したいのですが 何か良い情報は有りませんでしょうか。 知恵をお借りできたらと存じます。よろしくお願い致します。

  • EXCELで2つの値をキーに表から答えを求める

    INDIRECTやADDRESS関数の使い方が分からず困っています。 次のようなことがしたいのですが、どのようにすれば可能でしょうか? 表1 ┌──┬──┬───┐ │記号│番号│値  │ ├──┼──┼───┤ │ A | 10 │xxx│ │ A │ 11 │yyy│ │ B │ 11 │zzz│ 表2 ┌──┬───┐ │キー│答(*) │ ├──┼───┤ │A:10│xxx│ │B:11│zzz│ 表1に記号と番号と価格が並んでいるテーブルがある。 表2に「記号:番号」で記されたキーがあり、これを記号と番号に分離して、 表1の1列目、2列目にそれぞれマッチさせて、3列目の答えを求め、 表2の2列目(*)に入力する。 どうかよろしくお願いします。