- ベストアンサー
perlにおける正規表現で、パターンに変数を使う場合について教えてください。
変数と変数を正規表現にて比較する場合に、 if ($text =~ /$pattern/) { ... } とすると、「$pattern」を変数として認識しません。 「$」が位置指定子として認識されている?ようです。 「$pattern」を変数として認識させるにはどのようにすればよいのでしょうか? 「\$pattern」のように「\(バックスラッシュ)」を入れても認識されませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- fdsjaklfjas
- ベストアンサー率81% (96/118)
関連するQ&A
- 正規表現のパターンに変数を指定したい
perlでパターンマッチを行う際、正規表現で行いますが、パターン文字列内に変数を指定したい場合はどうすればよいのでしょうか? if ($ENV{HTTP_USER_AGENT} =~ /$pattern/) { : } というようなことをしたいのですが、うまくいきません。 方法はありますでしょうか?
- ベストアンサー
- Perl
- 正規表現でパターン部分を変数処理できますか?
正規表現でパターン部分を変数にできるのでしょうか? $source = qq{*** テスト ***}; $pattern = qq{テスト}; if($source =~ /$pattern/g){ print "match"; }
- ベストアンサー
- Perl
- 正規表現のパターンマッチがうまくいきません。
正規表現のパターンマッチがうまくいきません。 入力した文字を含むデータを抽出しようとしているのですが、エラーは出ないものの、ヒットしません。 次の構文をそれぞれを試してみました。 目的は入力された文字$matchを含む$textを@queryに入れることです。 if($text =~ /$match/){ push(@query, $text); } if($text =~ /\$match/){ push(@query, $text); } if($text =~ /.*\$match.*/){ push(@query, $text); } if($text =~ m/.*\$match.*/){ push(@query, $text); } 半角英数で何度か試したのですが、どれでやってもヒットしてくれません。 どこをどのように訂正すればいいでしょうか。 お分かりの方ぜひご指導ください。 ちなみによく入力データを$in{aaa}とか$QUERY{aaa}などとまとめることがあるのですが、これを正規表現にそのまま入れるにはどうしたらいいでしょうか。 {}は量指定子になるのでこのままではエラーになるかなとも思うのですが、\などでエスケープすればいいのでしょうか。 上の$matchも元々は$in{aaa}なのですが、 $match = $in{aaa} として変えています。
- ベストアンサー
- Perl
- Rubyの変数を含んだ正規表現について
下のように正規表現でlineと 1=,2=などから始まる行を抽出する プログラムですが、どうやら正規表現の左辺(//の中身) には変数は使えないようです。iが文字として 認識されているようです。 解決策を教えてください。 while line = io.gets 20.times{ |i| if /^i=(.*)/ =~ line p $1 } end
- ベストアンサー
- その他(プログラミング・開発)
- 正規表現内での変数の扱いに関して
正規表現内での変数の扱いに関して あるの変数の文字列が別の変数の文字列を冒頭に含むかどうか判別した上でその差分を抽出するコードを書こうとしています。 $a='komekoron'; $b='kome'; if($a=~/^$b(.+)$/){print $1}; このコードを実行すると「koron」が出力されます。 同様に以下のコードで「:」を出力させたいのですが上手くいきません。 $a='*:'; $b='*'; if($a=~/^$b(.+)$/){print $1}; 出力内容は「*:」 これは変数内の文字列がパタンとして扱われているのでしょうか。どうすれば意図する動作になるでしょうか。ご教授願います。
- ベストアンサー
- Perl
- この正規表現のパターンについて
この正規表現のパターンについての意味を教えてほしい。 【疑問】 $pattern ="/((?:.*?<p>.*?<\/p>){3}).*/mis"; ↓の中の (?:.*?<p>.*?<\/p>){3} ↓の中の 先頭の「 ( 」の次の、「 ?: 」の意味がわかりません。 これは、どのような意味があるのでしょうか? 【今までの流れ】 あることが知りたくて質問しました。 そのページは、こちら http://okwave.jp/qa/q7300031.html 教えていただいた、正規表現で、「出来た、出来た」と喜んで、ベストアンサーとして質問を締め切りました。 正規表現って、言語などの環境により、多少の違いがありますよね? そこで、phpの正規表現を勉強しようと、その正規表現を見ました。 しかし、なぜ、これらの文字があるのかわかりません。 よろしくお願いします。
- ベストアンサー
- PHP
- javascriptの正規表現で変数を扱う
javascriptの正規表現で変数を扱う方法がわからずに困っております。 下記スクリプトの●●●部分に変数をいれるとしたら、 どうすれば良いでしょうか? どなたかご教授ください。 宜しくお願いいたします。 if(/(?:^|\s)●●●(?:$|\s)/.test(obj.className)){
- ベストアンサー
- JavaScript
- 【正規表現】HTML5のpattern属性について
HTML5のpattern属性で半角英数記号を指定するにはどう記述したら良いですか? HTMLやCSSの学習をしています。 正規表現についてはほぼ分かりません。 (1)ユーザーIDやパスワード入力フォーム半角英数記号のみの入力を処理する場合、type属性は”text”でいいのでしょうか? (2)pattern 属性に使う正規表現はほぼ理解できません。自分なりに調べてみたのですが、以下のような記述だと_アンダーバーや@マークなどの記号は識別できないのではないかと言われました。 また入力文字数制限は正規表現でも出来るようですが、以下のように自分でもわかるminlength, maxlengthで記述しようと思っていまがこれで大丈夫なのでしょうか? サンプルとして以下のように記述してみました。 type属性や、「半角英数記号」の入力文字など正しい書き方を教えてください。 よろしくお願いします。 <input type="text" name="username" pattern="^[0-9A-Za-z]+$" minlength="4" maxlength="50">
- 締切済み
- HTML
お礼
回答ありがとうございます。 もう疲れ果てて家に帰ってきてしまいました(笑) 明日出勤したら早速ためしてみます!
補足
お礼と補足が逆になってしまいましたが、 if ($text =~ $pattern) { ... }でいけました! 本当にありがとうございます! 補足としては$patternがファイルから読み込んだ文字列であり、 改行コードが含まれていたため比較してもひっかからなかったというのもありました。 ($patternに文字列を入れた後、改行コードを削除したら大丈夫でした。)