テックメモコンテンツへスキップテックメモ当ブログは自分用のメモです。昔のメモをそのまま移行しただけの記事もあり一部不正確な記述もあります。文字列:abcdefgabパターン:cf走査の順番は、走査される文字列(abcdefgab)の先頭(a)からパターンと照合し、ダメなら次の文字列のbからパターンと照合。文字列のcまでくると、パターンのcとマッチするので、パターンは次のfに行く。そこで、文字列がbでパターンがfなのでマッチが失敗。走査の対象にパターンと同じ組み合わせがでてこないとダメ。先読み・後読みアンカーにマッチする。みfoo(?=bar)走査してbarが見つかると、barの直前にマッチする。結果、直後にbarがあるfooにマッチする。・否定的先読みfoo(?!bar)走査時、全ての位置にマッチし、barがあると直前をマッチから外す。結果、直後にbarがないfooにマッチする。・肯定的後読み(?<=bar)foo走査してbarが見つかると、barの直後にマッチする。結果、直前にbarがあるfooにマッチする。・否定的後読み(?<!bar)foo走査時、全ての位置にマッチし、barがあると直後をマッチから外す。結果、直前にbarがないfoo(barは含まない)にマッチする。実験(電話番号)(?=(?:\d-?){10}$|\d{3}-\d{4})(\d{2,5})-(\d{1,4})-(\d{4}$)の場合(?=(?:\d-?){10}$|\d{3}-\d{4})まで先読み。このマッチは?:を(?:はメモリしない意)外して考える。(\d-?){10}これはハイフンは無視して数字が10連続しているかどうか。123456789-0\d{3}-\d{4}を追加して、(\d-?){10}|\d{3}-\d{4}とすると。12-34567この先読みでマッチした場合のみ、後ろの、(\d{2,5})-(\d{1,4})-(\d{4}$)へ走査が続く。プロフィール1982年生まれプログラマに憧れていたけど挫折。そもそもプログラミングの勉強を始めたのが30を過ぎていて、そこから並以下の頭が並以下の努力でなれるわけなかった...。現在は非IT系企業に勤務。一応PCに詳しい人という扱いで色々自由にやらせてもらっているが、本業のプログラマではありません。ついては、費用をかけてパッケージを入れてもほとんど効果がでず、逆に簡単なVBAを作る(まぁVBA利用には賛否ありますが...)だけでも大きな効果がでたりすることも多いので、しっかり効果のあるIT活用について考えていきたいと思います。記事に問題がある場合、連絡いただければ対応いたします。