- ベストアンサー
正規表現
変数$aのなかに変数$bが含まれていたらをperlの正規表現であらわすと どのようになるのでしょうか?if($a=~ /$b/)ではうまくいかないのですか?
- Perl
- 回答数3
- ありがとう数1
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$bの内容によります。 $bに正規表現で意味がある記号など含んでいると、 期待通りには行きません。 単に、含まれているか調べるだけなら、index で調べられます。 $a='2^8=256 2^10=1024'; $b='^8'; if($a =~ /$b/){ print "test1 OK\n"; }else{ print "test1 NG\n"; } if(index($a,$b) >= 0){ print "test2 OK\n"; }else{ print "test2 NG\n"; }
関連するQ&A
- 正規表現の書き方に困っております。
あるSQLのダンプを変換するプログラムをPerlで書いているのですが、 うまく正規表現が書けなくて困っております。 データの途中に,が有ると、うまくいきません。 ''の中に囲まれた,は無視するという正規表現を書きたいのです。 また、'''B'も正しく処理できれば、完璧です。 #!/usr/bin/perl use strict; use warnings; #my $a = qq{'A','B',1}; --> うまくいく ['A']['B'][1] #my $a = qq{'A,','B',1}; --> うまくいかない ['A] ['] ['] my $a = qq{',','''B',1}; --> もっとうまくいかない ['][']['] if($a =~ /(.+?),(.+?),(.+?)/){ print "[$1]\n"; print "[$2]\n"; print "[$3]\n"; }else{ print "ERR!\n"; } exit; __END__
- ベストアンサー
- Perl
- perlでの正規表現について教えてください。
たとえば、 $A = 'aaa/bbb/ccc/ddd/eee/fff/ggg' というものがあったときにperlの正規表現でddd/のすぐ後の部分を抜き取って違う変数に入れたいのですが、それを正規表現で切り取りたいのですが、どうしたらいいかわからないです。 初歩的な質問ですが、お答えいただければ幸いです。 よろしくお願いします。
- 締切済み
- Perl
- 正規表現の置換演算子に変数を埋め込むことをしたいのですが
正規表現の置換演算子に変数を埋め込むことをしたいのですが $a = 'abcd0001'; $b = '0005'; $a =~ s/abcd([0-9]{4})/abcd\$b/; #=> $a=[abcd$b] print "\$a=[$a]\n"; とすると、abcd$bとなります。 置換演算子1行で、abcd0005とする方法はあるのでしょうか?
- ベストアンサー
- Perl
- 正規表現について
いつもお世話になっております。 perlの正規表現で分からない事があります。 ご存知の方がいらっしゃれば、アドバイスを頂けますようよろしくお願い致します。 (質問内容) 以下のようなプログラムを実行した場合、matchが出力されてしまいます。 $aには、「、IS」を設定しているので、「真」と扱われないと思うのですが、何故、matchが出力されるのでしょうか? また、「偽」として処理をいしたい場合、 どのようにすればよろしいのでしょうか? #!/usr/bin/perl $a = "、IS"; $b = "AIS"; if ($a =~ $b){ print "match\n"; } else{ print "not match\n"; }
- 締切済み
- Perl
- 正規表現内での変数の扱いに関して
正規表現内での変数の扱いに関して あるの変数の文字列が別の変数の文字列を冒頭に含むかどうか判別した上でその差分を抽出するコードを書こうとしています。 $a='komekoron'; $b='kome'; if($a=~/^$b(.+)$/){print $1}; このコードを実行すると「koron」が出力されます。 同様に以下のコードで「:」を出力させたいのですが上手くいきません。 $a='*:'; $b='*'; if($a=~/^$b(.+)$/){print $1}; 出力内容は「*:」 これは変数内の文字列がパタンとして扱われているのでしょうか。どうすれば意図する動作になるでしょうか。ご教授願います。
- ベストアンサー
- Perl
- 正規表現
if(str.match(/^[-+]?\d+$/)) alert("matched !"); この正規表現(先頭に+か-かをつけてあとは数字という表現です。)で 全体が//で囲まれてますがどうしてでしょうか? オプションとしてgとかiがあるのならわかるのですがないみたいです。 また^と$をつかった表現で例えば^AB$とした場合どうしてACBは含まれないのでしょうか?
- ベストアンサー
- JavaScript
- これは正規表現とは言えないでしょうか?
正規表現を勉強しようと思っているのですが まずはじめに確認させて下さい。VBAです。 Sub 正規表現() If a Like "*a*" Then End If End Sub は正規表現とは言えないでしょうか? *を使っているからそう思いました。 Dim re As RegExp Set re = New RegExp を使わないと、正規表現といえないのでしょうか? よろしくお願い致します。
- ベストアンサー
- Visual Basic
お礼
回答ありがとうございます。補足し忘れましたが$aにも$bにも ?+.\などのメタ文字が含まれている場合はどうなるのでしょうか? $a='http://www.hoge/index.php?aaa.mid'; $b='php?aaa.mid'; などの場合です。