• ベストアンサー

正規表現で取得できそう?

$moji = "りんご{code:A0001}酸素"; 上記の文字列より 変数Aに "{code:A0001}" を取得したいのですが、 正規表現で取得することは可能でしょうか? 初心者にお勧めな正規表現の解説サイトありましたら教えて下さい。 よろしうおねがいします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

<?php $moji = "りんご{code:A0001}酸素"; if(preg_match ( "/\{.*?\}/", $moji, $matches)){ $A = $matches[0]; print "match:$A\n"; } ?> http://jp.php.net/manual/ja/function.preg-match.php http://jp.php.net/manual/ja/reference.pcre.pattern.syntax.php

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

どういった解説を希望しているのか分かりませんが、 Perlを使った正規表現のチュートリアルを紹介しておきます。 記述法がPHPとは違いますが、メタ文字の使い方を知るのにはよいかと思います。 また、正規表現入門といったタイトルの書籍もあるようなので そちらもあたってみるとよいかもしれません。

参考URL:
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlretut.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現を教えてください。

    正規表現を教えてください。 C#で正規表現を用いた文字列検索を勉強中なのですが、うまくマッチさせることができません。教えていただけないでしょうか。 検索対象の文字列は下のようになります。 キーワード;値; 文字列中に該当するキーワードが存在する場合に、その値を取得するプログラムを考えています。しかし、私の正規表現では2つ目の「;」を検出してしまい、キーワードのみを取得することが出来ずに困っています。 見当違いの表記をしているとは思うのですがどなたかお助けください。 match = Regex.Match(line, "^(.*);"); C#初心者なものです。

  • (秀丸)正規表現で、変数¥1内より、""のみ削除

    お世話になります。 秀丸エディタの正規表現で、 変数¥1内に、取得した文字列値が、 "1,234" だった場合、 その変数値より、""(ダブルコーティション)のみを削除して、 変数¥1内に、 1,234 として、セットし直したいです。 そこでご質問させていただきますが、 既存の変数¥1内に取得する為の正規表現のところに対して、 さらに、 どのように正規表現を追記すれば、 上記しましたように、 変数¥1内に、 1,234 として、セットし直すことが出来ますでしょうか? 以上になります。 宜しくお願いいたします。

  • HTMLタグを取得する正規表現

    HTMLタグを取得する正規表現が出来ず、困っています。 <b><a href="http://aaa.ccc.co.jp">あいうえお</a></b> このような文字列であった時、 「<b><a href="http://aaa.ccc.co.jp">」を取得したいのです。 プログラムで制御する事も含め、以下のような動作を望んでいます。 1.「<b><a href="http://aaa.ccc.co.jp">」を取得する 2.対象文字列を「あいうえお</a></b>」にする 3.「あいうえお」を取得する 4.対象文字列を「</a></b>」にする 5.「</a></b>」を取得する やりたい事は「実際の表示上の文字数で文字数制限を行い、制限分の文字列を出力する」です。 なので、もし上記のような事をやる必要ないというのなら、その手段もご教示頂ければと思います。

    • 締切済み
    • PHP
  • 正規表現による文字列の取得について

    こんにちわ。 正規表現でマッチした箇所を変数に取り込むためにはどのようにしたらよいのでしょう? HTMLのデータの中から情報を取り込みたいのですが、 PERLの場合は if($_ =~ />データ([0-9\.]+)<\/FONT>/){$value=$1;} のようなかんじでやれば「データ2005」という文字列から「2005」と取得できたものをvbではどのように記述すればいいのかわかりません。 VB初心者のため、あまりマトを得ていないかもしれませんが、よろしくお願いします。 説明不足があれば補足いたします。 参考サイトなどでも結構です。

  • 正規表現についてご教示お願いします。

    正規表現についてご教示お願いします。 文字列:111,222,STR1234567END,STR222567END 上記文字列にて "STR1234567END"の部分を取り出したいのですが 正規表現:STR.*END で指定しますと "STR1234567END,STR222567END" と取得されてしまい上手く出来ません。。。 他にもいろいろ試しているのですが "STR1234567END"と取得できません。 どうかご教示頂けたらと思います。 よろしくお願いします。

  • 正規表現 TCL regexp関数

    regexp関数を用いて正規表現で文字列を操作したいですが、 上手く正規表現でかけなくて困っております。 変数=第一文字列,第二文字列,第三文字列,第四文字列,第五文字列 regexp --{,,,,$} 変数 match A B C D E と実現し、区切った文字をそれぞれA-Eの変数へ代入。 【操作文字列】 ・CSV形式の”,”カンマ4つで5区分に切ります ・第一文字列は先頭の文字は空白以外の[A-Za-z0-9_]途中空白有(\s) ・第二文字列は空(,,) ・第三文字列は数字 ・第四文字列は文字のみ空白なし数字なし ・第五文字列は数字文字混在 このように実現したいのですが、正規表現を見ながら regexp --{\c\w,^\c,\d+,\w+,\c+$} 変数 match A B C D E のようにやったのですが、無理でした

  • 正規表現にて質問があります。

    テスト勉強をやっていて過去問をみたら正規表現の部分だけわからずにいます (1)α=(0|10)*2(1|00|010)+ (2)α=(ab|c)*c(bc|a)+ (3)α=(1|22)*a(333|4444)* (1)正規表現αが表す文字列内、文字列長が1のものすべてを列挙せよ (2)正規表現αが表す文字列内、文字列長が2のものすべてを列挙せよ (3)正規表現αが表す文字列内、文字列長が3のものすべてを列挙せよ (4)正規表現αが表す文字列内、文字列長が4のものすべてを列挙せよ の答えを教えてもらえないでしょうか? もしよろしければどうやってとけばいいかのアドバイスもお願いします

  • 正規表現:  (111)-(222)-(333)

    正規表現:  (111)-(222)-(333) から (333)を取得したいと考えています。 ()で囲まれた数字のうち、最後のものを取得するというもので、 この、最後のという考えを実装することができずに困っています。 なぜ最後にこだわるかというと、以下のような例があるからです。 ◆ (111)english(222) ◆ (111)日本語(222)日本語 文字列中に含まれる()で囲まれた数字のうち、最後のものを取得する正規表現を教えてください。

  • 正規表現について

    /^R|ruby$/ 上記のような正規表現があったとします。 この正規表現の【|】の判断がわかりません。具体的には、/^ $/という記述から 対象の文字列の先頭がRかrのどちらかで以降がubyと続く文字列にマッチという 意味だと解釈しているのですが違うのでしょうか? 具体的にはRubyという文字列かrubyという文字列の二つのうちどちらかにしか マッチしないとおもっていたのですが、 rrubyという文字列やRrubyという文字列にもマッチします。そもそもこの場合のR|rの箇所ですが、これはRかrのどちらかが先頭にあり 二文字目からはubyという文字列がつづきますよ。という正規表現ではないのでしょうか? かなりこまっています。 識者のかたご教授ください。

  • |。ってなんですか? 正規表現

    正規表現の学習中です。読んでいる本の中に次の式がありました。  (?<=^|。)[^。]+。 日本語の文章の中から一文を抽出するための正規表現です。  。以外の文字がダーッと連なった後に。が来る文字列 とのことです。  [^。]は。以外の文字  +はそれが1個以上ある ですから  [^。]+ は  。以外の文字が1個以上ある という意味です。 その後に。が付きますから、  [^。]+。 だけで  。以外の文字がダーッと連なった後に。が来る文字列 ということになります。 では  (?<=^|。) の意味は何でしょう。  (?<=なんたら) は後方参照を意味しますから、 ^|。 のすぐ後に [^。]+ が続くと言いたいのでしょうか。 だとすると  ^|。 が問題です。  ^もしくは。 という意味なら、^は正規表現で記号として使われている文字ですから、  \^|。 と表現されそうなものです。 それに、。は文末でしか利用されない文字ですから、これに注目して検索を行うというのは理解できますが、^は日本語でなんら特徴を持つ文字ではありません。  ^もしくは。 という理解は間違いでしょう。 それでは^を記号として考えるとして、その前後を[]で囲んでいないから、この^は文字列の先頭を表すのでしょうか。そうすると件の正規表現は  先頭の|。のすぐ後から。以外の文字が連なった後に。が来る文字列 という意味になります。日本語の一文を抽出する正規表現という解説にかなり近づいてはいます。 しかし  |。 とは一体何? |はorを意味する記号ですが、  何とか or 。 という意味でしょうか。 でも「何とか」は「何とか」なりに何か文字表現がなされていても良さそうですし、それに  先頭の「何とか」または。のすぐ後から・・・ という解釈は意味不明。  |。 はどのように解釈すべきなのでしょうか。 お手数をお掛けします。

    • ベストアンサー
    • Perl