• ベストアンサー

正規表現について教えてください

検索文字列 [0-9][a-c]* 置き換え文字列 Result 対象文字列 123abcabc とすると 結果 ResultResultResult となります。 (テストはDelphi XE5 Starterで行っていますが、サイトのPHP正規表現チェッカーでも同じ結果です。 これを3abcabcにマッチさせて結果が12Resultとなるようにしたいのですがどう記述すればいいのでしょうか?

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

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.3

\d[a-c]+ かと思いますがどうでしょうか?

kihonkana
質問者

お礼

ありがとうございます。 正規表現って難しいですね。

kihonkana
質問者

補足

うまくいきました。 (お礼のところに書き忘れました)

その他の回答 (2)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

以下のマッチパターンでどうぞ。 [3|a-z]+$

kihonkana
質問者

お礼

ありがとうございます。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

>3abcabcにマッチさせて  それじゃ分からない  3abcabc → Result で良い話になってしまう。  なににマッチさせるか、何にマッチさせないかを具体的に示さないと。

kihonkana
質問者

お礼

ありがとうございます。

kihonkana
質問者

補足

ごめんなさい。 いろいろやっていて頭がぼーっとなっていたみたいです。 数字1桁+aからcまでの文字1文字以上です。

関連するQ&A

  • PHP 正規表現

    はじめまして^^ 現在、PHPでプログラムを作っています。 そして、文字列の置き換えをする機会があり、 正規表現をつかうことになりました!! 置き換えに使う関数は、mb_ereg_replaceです! ある条件にあった部分の文字列を置き換えしたいと思っています。 そして、いろいろとやっていきましたら、あるひとつの壁にぶつかりました。。 例えば、PHPでは、正規表現の部分を [^文字]とやると、『文』と『字』という文字列以外にマッチという意味になるらしいのですが、 『文字』という文字列以外にマッチ、というふうに、表現したい場合は、 どう表現すればよいのですか? [^(文字)]とか、その他いろいろ、 自分なりに、色々ためしたのですが、うんともすんともいいません、、 どなたか、わかる方教えて下さいm(_ _)m

    • ベストアンサー
    • PHP
  • BRIEF 正規表現って何ですか?

    Delphi XE5を使って正規表現のプログラムを作っています。 メーカーのホームページ http://docwiki.embarcadero.com/RADStudio/XE4/ja/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE に「BRIEF 正規表現」という言葉が出てきますけどこれは何でしょうか? 検索しても説明したサイトが見つかりません。 簡単に教えていただけると助かります。 それと、上記のサイトの記述間違ってますよね。 { }の説明のところ、...[置換文字列]を NUM\1 と指定すると、...「\1」ではなく「$1」ですよね? (-ε-)ブーブー

  • 正規表現について

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

  • PHP5の正規表現でうまくマッチできない

    PHP5の正規表現で文字列中の独自タグをパースしようとしていて、 うまくいかず困り果てています。 正規表現パターンは、/<tag>.*<\/tag>/ 対象文字列は、<tag>こんにちは</tag><tag>こんばんは</tag> preg_match_all('/<tag>.*<\/tag>/', '<tag>こんにちは</tag><tag>こんばんは</tag>', $result) でマッチした文字列は、 $result[0]:<tag>こんにちは</tag> $result[1]:<tag>こんばんは</tag> となることを期待しているのですが、 実際は、 $result[0]:<tag>こんにちは</tag><tag>こんばんは</tag> となりました。 <tag>タグの間に入る文字列長、文字列フォーマットは不定です。 どうすれば期待通りの振る舞いに出来るでしょうか?

    • ベストアンサー
    • PHP
  • PHP、正規表現の使い方

    PHPで特定の文字列から特定の文字までを削除したいのですが、 正規表現を使うということはわかりましたが、どのようにしていいかがいまいちわかりません。 http://www.sample.php?a=test&b=ex&c=sample という文字列があったとして、 &b=exを取り除きたい場合はどのようにしたらいいのでしょうか。 mb_ereg_matchを使用しようと思っていますが、 その他の方法があればそちらも教えてください。

    • ベストアンサー
    • PHP
  • 文字列全体に対する置き換え [正規表現]

    正規表現での文字列全体に対する、マッチ箇所 への置き換えについて、アドバイスをもらえないでしょうか。 parlでいうg修飾子はphpには無く、 例えば、[preg_match]は[preg_match_all]という関数で対応出来ますが、 置き換えを行う[preg_replace]には[preg_replace_all]がありません。 それに類する関数も無いように思います。 これに関して、PHPではどのように対応すれば良いのでしょうか。

    • ベストアンサー
    • PHP
  • 正規表現のエラーを区別したい

    Delphi XE5を使って正規表現のプログラムを作りました。 ... try result_txt := TRegEx.Replace(target, pattern, replace, []); AddButton.Enabled := True; except ShowMessage('正規表現にエラーがあります'); end; ... というようなプログラムですけど、この正規表現のエラーをもう少し詳しく表示できないでしょうか? (正規表現のエラーコードはいくつかに分かれていないでしょうか?) 正規表現のテストプログラム部分で、target、pattern、replaceともユーザーが入力するようになっています。

  • 正規表現での$1や$2の使用方法

    正規表現の置き換え文字列部分で使用できる$1や$2の使用方法を教えてください! 以下のソース1のようにs///gの置き換え文字列部分に$1や$2を直接記述すれば、1つ目と2つ目のマッチ部分で置換が行われるのは確認しました。 しかし、ソース2のように置き換え文字列部分を変数に代入したのち、使用すると、正しく置換が行われません。 $1や$2を含んだ置き換え文字列を変数に持っている状態で、ソース1と同じ結果を得るにはどうしたらよいか、ご存知でしたら教えて下さい。 ############################## # ソース1 ############################## #!/usr/bin/perl $data = '1234567'; $ptn = '(\d{3})(\d{4})'; $data =~ s/$ptn/$1-$2/g; ############################## ↓ $dataは123-4567となる。 ############################## # ソース2 ############################## #!/usr/bin/perl $data = '1234567'; $ptn = '(\d{3})(\d{4})'; $str = "$1-$2"; $data =~ s/$ptn/$str/g; ############################## ↓ $dataは-となる。

    • ベストアンサー
    • Perl
  • 正規表現についての質問

    正規表現で、 テストあいうえお[44]という文字列から 44だけ抜き出したい場合どのように記述すればいいでしょうか? ご教授お願いします。

    • 締切済み
    • PHP
  • 正規表現

    例えば下のような文字列があって、{~} を正規表現で最初の一つをマッチさせたいのですが、{~} が複数あると最初の一つだけを取り出すことができません。 あああああ{aaaaa}いいいいい{bbbbb}ううううう パターンは /{.*}/ こんな感じでやっているのですが結果は、 {aaaaa}いいいいい{bbbbb} となってしまいます。 正規表現に詳しい方教えてください。

専門家に質問してみよう