要件定義の不安をなくす。要件定義の不安をなくす。ユニファのバックエンド分割に学ぶイノベーションメタバース開発に必要な技術の基本知識をおさらい。Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。KB)プログラム言語やSQL、テキストエディタで使用可能な「正規表現」を使う際の、考え方と処理のイメージを、具体的な例題を交えて解説します。第2回は肯定先読み・肯定戻り読みを応用したさまざまな表現を紹介します。最後に参考資料はじめに筆者が運営するサイト『正規表現パズル』で扱っている、正規表現の問題とその答えを、EmEditorの正規表現を使って解説していきます。第3版』を一読された方。6.00.4で動作確認しました。その他、プログラム言語やSQLやテキストエディタなどでも応用できます。最初は、IPの前ゼロを削除する正規表現についてです。置換条件IPアドレスの前ゼロを削除する。0でかつ次の桁が存在したら、その0を削除する。0でかつ次の桁が存在したら、その0を削除する。0でかつ次の桁が存在したら、その0を削除する。いう処理を繰り返しますが、これを正規表現でどう実現するかが、この問題の難しいところです。上記の正規表現を解説すると、まず(^|(?<=\.))でマッチの開始位置を、(行頭またはピリオド)の次の文字からとしてます。ピリオドは円マークでエスケープしないと、任意の1文字を意味する正規表現と解釈されますので、気をつけて下さい。続いて0+を指定して0にできるだけマッチさせ、肯定先読みの(?=[0-9])を指定して、0+によって0にマッチしすぎた場合に対処してます。000.000.025.205を(^|(?<=\.))0+で検索すると下記の検索結果となります。検索結果また、000.000.025.205を(^|(?<=\.))0+(?=[0-9])で検索すると下記の検索結果となります。以上により、0+(?=[0-9])は、0にマッチできるだけマッチするが、最後のマッチ文字が0だったら、バックトラックが発生し最後の0にはマッチしないと分かります。これは、削除すべき0にマッチする正規表現になっています。正規表現のイメージは下記となります。ケンジ)趣味が競技プログラミングなWebエンジニアで、OracleSQLパズルの運営者。AtCoderの最高レーティングは1204(水色)。3.12」の最初のベータ版がリリース新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。