• ベストアンサー

文字列の検索

ある文字列の中から、たとえば@1234のように @の後に数字が4桁連続している文字列を探す構文を matchを使って記述したいのですが、 matchの引数をどのように指定すればいいのかわかりません。 [0-9]やd\と{4}をいろいろ組み合わせてはみたんですが、 どうしてもうまくいきません。 matchでなくても他に良い方法があればおしえてください。

  • niea7
  • お礼率100% (3/3)

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

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

普通は単純に match(/@\d{4}/) などと記述すると思いますがこれでいかなかったのでしょうか? うまくいかなかったのであればどのようにうまくいきませんでしたか?

niea7
質問者

お礼

・・・解決してしまいました。 文字列を//で囲む事が必要だったんですね。 こんな初歩的な質問にご回答頂き、ありがとうございました! 助かりました!

その他の回答 (1)

  • NTJ
  • ベストアンサー率44% (46/103)
回答No.2

ほんの補足です・・・ '@\d{4}' 文字列が@'+数字4桁の場合にマッチする。 /@\d{4}/ 文字列中のに@'+数字4桁を含む箇所にマッチする。 /@\d{4}/g 文字列中の'@'+数字4桁の箇所全てにマッチし、配列で返す。 /^@\d{4}/ 文字列が@'+数字4桁で始まる場合にマッチする。 /@\d{4}$/ 文字列が@'+数字4桁で終わる場合にマッチする。 /^@\d{4}$/ 文字列が@'+数字4桁の場合にマッチする。 こんな感じですかね。 正規表現の文字列の形式は、unix系のテキストファイル処理スクリプトから出た文化なので、ちょこっとC言語系とかWindows系の文化とは隔たりがありますね。 文字列ではなくて、コマンドだと思えばよいのかもしれませんが。。。

niea7
質問者

お礼

補足までつけて頂けるとは。 非常に参考になりました! '@\d{4}' と /^@\d{4}$/ は完全一致ってことで良いんですよね?

関連するQ&A

  • Excelの文字列操作について

    Right・Left・Mid関数は何桁目以降表示しなさい、とか何桁目以降何桁分を抽出しなさいという関数ですが、例えば、@AAAA@BBBBB@CC.***のような文字列があり、文字列の右側から何桁目に@が来るか知る関数はありますか?サンプルの文字列でいうと、***.CC@の順になりますので、7桁目と判るようにできますか?どなたかお知恵をお貸し下さい。よろしくお願い致します。

  • 0001~0099という文字列から、最大値を検索する方法はありますか。

    お世話になります。 エクセルで質問です。 便宜上、A1の列に4桁で、数字以外は0でうめている文字列があります。 例】1ならば0001という風に・・ その中から、最大のものを探したいと思っているのですが、 文字列ではMAXは使えないのでしょうか? また、そのような場合の最大値の検索方法はほかにあるでしょうか? よろしくお願いいたします。

  • Excel 同じ内容の文字列セルをまとめる

    お世話になります。 文字列の入った複数セルの中から 同じ内容のものがある場合 これらを配列数式データ上でまとめたいと思ってます MATCH構文を使って MATCH($A:$A,$A:$A,0)として 自らと同じものが何処に最も早く現れたかの配列数式データを作り これをソートして その後の主処理のデータにしたのですが MATCH構文かたくじ式なのでしょうか 物凄く遅いのです。 で本題なのですか MATCH構文を使わず 軽いCPU負荷で 配列数式上にある複数文字列データの同じものをまとめたいとき どうすればいいでしょうか? ご教示お願いします。

  • 文字列の修正

    初心者です よろしくお願いします Excel2010で次のようなことがしたいです 列のセルには次のような文字列が入っています  文字列 No.3 とか No.26 とか No.302 とかです  要するに「No.」の後に数字のところが 1桁 または 2桁 または 3桁です やりたいことは No.3はNo.003に No.26はNo.026にと 桁数を3桁に揃わせたいのです 関数にそのようにするものがあるのでしょうか? またあれば 同時に使い方も教えて頂きたいです よろしくお願いします。

  • URL中で「サポートで確認中」になる文字列-その1

    URL中で「サポートで確認中」になる文字列-その1 2回に分けて質問させていただきます。URLを添付される方の多いカテの回答が多いのですが、「この回答はサポートで確認中」になることが多く、いつも確認中の間に質問が締め切られてしまいます。5月以降だけでおそらく5回以上。サポートは非公開とのことです。 11桁の連続した数字はダメ(確認済) 【質問その1】連続した数字でダメなケース。 経験された方、教えて下さい。 10桁の連続した数字もダメですか? 9桁はどうですか? 他に連続した数字でダメなケースありますか?どういうケースがダメでしたか?

  • エクセルで、文字列から検索し、結果を表示する

    あるセルに、(1)(2)(3)とか(2)(4)(7)というような丸数字の文字列が入っています。その中に、(2)があるかどうかを探し出し、結果を出したいのですが、思うような関数が見当たりません。 MATCHとかCOUNTIFでやってみたのですが、どうもうまくいきません。(1)(2)(3)はまとめて、”(1)(2)(3)”と認識されているようで、(2)があっても、結果は0と出てしまいます。 よい方法はありますか?

  • 複数列の中の文字列の検索、個数抽出

    どなたかお力をお貸しください。。 エクセル2003を使用しています。    A列 B  C  D 1  あ  う     あ 2  い  お  か  か 3  う        う 4  え     き  く 5  お  い  う  け Dの文字列のなかでA~C列の中に重複している文字が何個あるかを出したいです。 この場合D列は「あ、か、う、く、け」なので、A~C列にある「あ、か、う」が重複しているので、3個と出したいです。 もしくは重複していない「く、け」で2個と出したいです。 MATCH関数を使うと出来そうなのですが、MATCH関数だと配列の概念がなさそうなので、どうしたものかと。 条件として、 ・一つのセルで関数を使用して出す。 ・マクロ、計算用のセルはできたら使用しない。 ・空白セルもあり、文字列の完全一致のみ個数としてカウント。 ・列の数はだんだん増えてくるので、列数は増えても大丈夫なやり方の方がいいです。 COUNTIFで重複個数を出すと、「う」が複数回出てくるので、重複の個数が増えてしまい困っています。 もしかしたら不可能かもしれませんが、どなたかお知恵をお貸しください。 よろしくお願いいたします。

  • Excel 文字列にする関数

    エクセルが苦手なので教えてください! 選別番号で6桁の数字を使っているんですが、頭の数字が0から 始まるものがあり、セルに入力するとその選別番号だけ5桁に なってしまいます。 文字列にすればいいということだけはわかっているのですが、 すでに数字が入っている列に対して、関数を使って以下のような ことはできますか? (1)選別番号が5桁だったら、頭に0をつけて6桁にする、  かつ文字列にする (2)選別番号がすでに6桁だったら、そのまま文字列に変換 宜しくお願いします!

  • 正規表現を使った文字列の抽出方法について

    正規表現を使った文字列の抽出方法について RHELを使っています。 テキストデータの中に、以下のようなデータが 百万行単位で並んでいます。(カンマ区切り、2列構成) 1, 1.24425 2, 3.25252 (中略) 13, 6.25365 14, 8,36222 (中略) 103633, 252525.0 最終的にやりたいことは2列目のデータのみの抽出です。 考え方として、正規表現で 「<任意の文字列の連続><カンマ>」という文字列を認識させ、 それを「空欄」で置換したいと考えています。 文字列の最後の文字をマッチさせる指定子が「$」という情報をWebで見つけたので まず、grepで見つけられるか以下のようにやってみたのですが、 grep -i ",$" test.txt $が環境変数と取られ、構文エラーとなってしまいます。 使い方がおかしいのでしょうか? ちなみに、うすうす感じている疑問として、「$」は文末にくるものしかマッチしなかったり しますでしょうか? カンマ区切りなので、表計算ソフトを使えなくもないですが、 行数がExcel2007の限界をよく超えるので、それ以外の方法で考えています。 アドバイスよろしくお願いいたします。

  • Excelでハイフンが入った文字列の抽出について

    A列に『12-1』、『1-5-10』、『14-15-6-3』など1桁また2桁の数字がハイフンで区切られた文字列があるとします。 そこからB列には左から2番目の数字、C列には右から2番目の数字、D列には1番右端の数字を関数で抽出したいのですが、出来ないでしょうか。 全部半角で、必ず数字は二つ以上あり、桁数は2桁までです。下記の画像のようにしたいです。 http://uproda.2ch-library.com/801593yFu/lib801593.jpg

専門家に質問してみよう