IT、ガジェットネタまとめ速報

IT技術やガジェットネタに関するみんなの反応のまとめをチョイスしてお届け!

Web系関連記事: プログラミング、開発関連

プログラマーが正規表現を使いこなすメリットとは?

投稿日:

1: ノチラ ★ 2018/06/01(金) 18:00:49.92 _USER
8278index
皆さん、正規表現は使っていますか? 開発者にとってテキスト処理は面倒な場面も多いですが、正規表現を駆使することで一気に効率化することもできます。今回、『正規表現辞典 改訂新版』の著者・佐藤竜一さんに、正規表現を使うメリットや本書についてうかがいました。

――『正規表現辞典 改訂新版』は目的別の検索ができるリファレンスですが、正規表現の歴史や背景についても解説されています。今回は佐藤さんに本書についてお尋ねしますが、まずはご自身のことを教えてください。

佐藤:勤務先はいわゆるSIerですので、各種システムの企画・構築を主業務としています。主に担当しているのは企業向けのアプリケーション開発基盤の構築や、個別システムに対するアプリケーション・アーキテクチャの立案といった分野ですね。

 世間的には「アーキテクト」と呼ばれる職種になりますが、私自身はプログラマーとして個別の問題と向き合い、頭を絞るほうが好きです。

――仕事では正規表現をどう活用されているのでしょうか。

佐藤:個別のアプリケーションにおける入力値検証などに利用することはもちろん、アプリケーションやミドルウェアのトラブルシュートにおけるログの分析や、既存データのクレンジングなどに活用しています。

 ログ分析では必要なログのみを抜き出す、あるいは不要な部分を刈り取るために正規表現は欠かせません。データのクレンジングでは不要なデータを排除する、あるいは不正なデータを正しい形式に整形するといった作業が必要となりますが、このような局面でも正規表現はそのパワーを存分に発揮してくれます。

読みやすさやメンテナンスのしやすさで差がつく
――プログラマー(開発者)として、正規表現を使いこなすのと使いこなさないのとでは、どんな差がつきますか?

佐藤:テキストを相手にする処理では、正規表現を活用することで簡潔かつ分かりやすい記述が可能となるケースが多々あります。正規表現をうまく使えないプログラマーは、ちょっとした処理でもループでテキストを文字単位に分割し、複雑な条件分岐を処理中に記述してしまいます。

 このようなプログラムは確かに動作するかもしれませんが、読みやすさやメンテナンスのしやすさという観点で見れば大きなマイナスとなるでしょう。

「正規表現を使いこなす」という質問からすると拍子抜けされるかもしれませんが、正規表現を使って解決すべき現場の問題の多くは、基本正規表現と拡張正規表現の範囲でも十分まかなえます。

 ですので、本当に基本的な部分をちゃんと理解するだけでもプログラマーとしては大きなアドバンテージになります。大切なのは個々のメタキャラクタの意味をきちんと押さえること、そして実践を繰り返すことでしょう。最初はとっつきにくく見える正規表現も、慣れてくるうちに自然と記述できるようになります。

――開発者以外でも正規表現を使えることでどのような利点がありますか?

佐藤:現在は開発者以外の方でも、各種のクラウドサービスなどのツールやリソースを活用して生産性の向上、さらにはビジネス上の成果を求められる時代です。処理対象の指示や結果の加工に正規表現が必要とされる、あるいは正規表現を使うことでより柔軟な処理を実現できるといった局面は今後も増えてくるはずです。

 たとえば、RPA(Robotic Process Automation)ではExcelやPDFファイルから特定のデータのみを抜き出し、妥当性を判断し、加工したうえで最終的な結果を得るといったことが普通に行われます。このような処理は、それこそ正規表現が最も得意とする領域です。

結果に辿りつく過程を理解してほしい
――2005年に出版された初版と、この改訂版が出る間に、どのような変化がありましたか?

佐藤:本書の前書きにも書きましたが、Unicodeが文字コードの標準的地位を獲得したことです。文字の選択はUnicodeのプロパティにもとづいて行われるため、たとえば1文字の数字を表す「\d」はUS-ASCII以外の数字にもマッチすることが当然になりつつあります。

 また、絵文字のように複数のコードポイントを消費して目に見える1文字を表すケースもこれまで以上に増えました。本書でも可能な限り、これらのポイントについて説明しています。
https://codezine.jp/article/detail/10855

引用元: http://egg.5ch.net/test/read.cgi/bizplus/1527843649/

続きを読む

このまとめの続きはコチラ!

-Web系関連記事: プログラミング、開発関連

関連記事

「Oracle Java」のライセンスが変更 ~無償利用は個人での開発・テスト・デモ目的のみに

1: 田杉山脈 ★ 2019/04/17(水) 20:14:29.57 _USER
米Oracleは4月16日(現地時間)より、“Oracle Technology Network(OTN)”で配布されている「Oracle JDK」のライセンスを変更している。従来の“Oracle Binary Code License(BCL)”はデスクトップ・サーバーともに商…

ユーザー企業のOracle技術者が足りない、高まる技術的負債のリスク

1: 田杉山脈 ★ 2019/11/15(金) 17:34:01.65 _USER
20年以上前に構築した古い基幹系システムを使い続けるユーザー企業が5社に1社の割合で存在するとされるなか、「枯れた技術」の維持管理に危機が迫っている。枯れた技術としてはCOBOLが有名だが、今回取り上げるのは別の技…

小学校教師「プログラミングの教え方がわからない。どんな授業をすればいいの?」

小学校教師「プログラミングの教え方がわからない。どんな授業をすればいいの?」

1: シュードモナス(東京都) [ニダ] 2020/02/24(月) 13:37:29.73 BE:123322212-PLT(13121)
 情報通信技術(ICT)時代に対応した人材育成に向け、プログラミング教育が2020年度から小学校で必修化される。 ただ、国が示すプログラミングの定義や授業の進め方は曖昧な部分…

テレビから飛び出す複合現実(MR)CM 博報堂と日テレが共同開発

1: へっぽこ立て子@エリオット ★ 2019/03/06(水) 13:44:37.49 _USER
博報堂と日本テレビ放送網は複合現実(MR)技術を活用し、テレビから人や商品が飛び出す体験を楽しめる「MR CM」の試作コンテンツを開発した。MRの専用ゴーグルを着用して視聴すると、CMの登場人物や…

「AI」が必修科目に。金沢工大の全学部で2020年度から

1: 田杉山脈 ★ 2019/01/17(木) 20:13:12.38 _USER
金沢工業大学は1月17日、AI(人工知能)の基礎を教える授業科目を2019年度に開講し、20年度の入学生からは全学部学科の必修科目にすると発表した。学生にAIの基礎的な機能を体験させ、能動的にAIを使う面白さを感じてもら…