• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現について教えてください。)

正規表現で末尾2文字が「01」でないデータを取得する方法

pringlezの回答

  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.1

A0001 A0002 A0011 A0100 A0101 A0201 に対して「^A0+」を削除すると以下になります。 1 2 11 100 101 201 これで比較するのはどうでしょう。 どういう関数を使ってどう書いているのかわかりませんが、マッチングの関数を1回だけで処理しようとすると困難だし、できたとしてもわかりにくくなってメンテナンス性が下がると思います。 一度不要部分を削除(空文字にreplace)してから、マッチングもしくは数値に変換して比較などすれば比較的シンプルに実装できるのではないかと思います。

abc999xyz
質問者

お礼

ありがとうございます。 参考にさせていただきます。

関連するQ&A

  • 正規表現について

    正規表現で、「空白またはa~zの中の1文字」を表すには[ a-z]でよいのでしょうか?

  • 正規表現について

    正規表現について質問をさせていただきます。 VB6.0にて正規表現を使用し、入力された文字のチェックを行っていますが どうしてもうまくいきません。 チェックしたい文字は A(半角アルファベット大文字1文字)または AAA(半角アルファベット大文字3文字)または (AAA)(半角カッコつき半角アルファベット大文字3文字)で 上記3パターン以外はエラーとしたいと思っています。 パターンは下記のように作成したのですが "(^[\(][A-Z]{3}[\)])|(^[A-Z]{1,3})" A、AAA、(AAA)以外でもA(AA)やAAAA等も正常ケースとして通過してしまいます。 パターンをどのように作成すればよいか教えて下さい。 よろしくお願いします。

  • 正規表現メタ文字「-」のエスケープについて

    いつもお世話になります。 正規表現のメタ文字のエスケープ処理を行いたいのですが、「-」の記号については、「[」「]」の中に出てきたときのみ([a-z]、[0-9]など)、エスケープの対象になります。 この場合、どのような正規表現を指定すれば、エスケープを行うことができるでしょうか。 例)  [a-z|A-z] ⇒ [a\-z|A\-z] 宜しくお願いします。

  • 秀丸の正規表現

    秀丸の正規表現 http://pc.dearie.jp/hidemaru/replace/14.html 上記URLでメールの正規表現について解説があります。 [A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+ この正規表現でメールの検索をおこなっています。この正規表現は理解出来ます。 .*([a-z0-9\-\.\_]+@[a-z0-9\-\_]+\.[a-z0-9\-\.\_]+)([^a-z0-9@\.\-\_]+).* キャプチャを使って正規表現でメールアドレスをマッチしているのは理解できます。 なぜ置換で、「\1,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・

  • Perlで使える正規表現を教えて下さい。

    Perlで使える正規表現を教えて下さい。 半角英語で、小文字が3文字以上続いた後、大文字が来る場合、その大文字の右にスペースを入れる。 これをPerlで使える正規表現を教えて頂けないでしょうか? 例 $str = 'AaaAaaaBbbbbCccccDddBbA'; # Aaa Aaaa Bbbbb Ccccc DddBbA ちなみに、色々ネットで調べて試してみて、 $str =~ s/([a-z])([A-Z])/$1 $2/g; が最も近いコードになったのですが、2文字続いただけでもスペースが入り困っています。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 正規表現

    お世話になります。正規表現の質問です。 \w に当たる文字とハイフンに合致するが、少なくとも一文字はアルファベット(a-z)またはハイフン(-)が含まれていなければならない(つまり、数字だけの文字列は合致しない) という正規表現はどうあらわせばよいでしょうか。 以上、よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現について教えて下さい

    正規表現について教えて下さい $string = "LibrayMyUtil2File AppFile"; $pattern = '/([A-Z][a-z0-9]*)*([A-Z][a-z0-9]*)File/'; $replacement = '$2'; echo preg_replace($pattern, $replacement, $string);//Util2 App と表示される この例のように、「File」の前の単語に置き換えたいのですが、 このやり方だとpatternの「[A-Z][a-z0-9]*」が重複しているのが凡長だと思ってまして もっと短縮された書き方があれば教えてもらいたいです。

    • ベストアンサー
    • PHP
  • 正規表現

    数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • 正規表現で

    正規表現で、英大文字と記号だけからなる文字列、を表すにはどうすればよいでしょうか。言い方を変えると、とにかく英小文字は含まないという事なんですが… [^a-z]+ かなと思ったのですがダメでした。 123#ABC : OK 123#aBC : NG みたいな感じです。 よろしくお願いします。

  • 正規表現にマッチする文字列の一括出力

    任意の正規表現を与えてやり、そのパターンに合致する文字列を 1行1文字列でテキストファイルに一括出力したいと考えています。 例えば、 [a-z][a-z][a-z] を与えてやると、 aaa aab aac aad ... ... zzx zzy zzz と、26の3乗で17576行の文字列をテキストファイルなどに出力。 LINUXのコマンドラインなら多少分かるのですが、プログラミングは さっぱりで、上記の目的につかえそうなユーティリティも探してみた のですが、見つけることはできませんでした。 よい方法がありましたら、ご教授よろしくお願いいたします。