1
/
5

Lightning Talk_正規表現で上司の無茶振りを解決してみた(架空のお話)

Photo by Pankaj Patel on Unsplash

正規表現とは?


  • 正規表現は、強力で柔軟、かつ効率的なテキスト処理の鍵を握る存在
  • 様々な用途に対応できる能力と表現力を持った一般的なパターン言語が発達してきた


どういう場面で役に立つかストーリ仕立てで解説していきます!

上司からの依頼(ユースケース)

「郵便番号を1つの項目で管理しているWebシステム。これを別項目で管理するようになるので移行します!ただ、現状正しい書式で入っていないものもいくつかあるのでまずはその数を調査してほしい!」

レコードは80万行あります!!!

依頼まとめ

  • 住所項目に正しい郵便番号が設定されていないレコード数を調査
  • 80万行のCSVファイルから(カンマで値を区切ったテキストファイル)



考えられる手法

1.CSVならEXCELが得意!Excelやスプレットシートに貼り付けて検索しよう!
→80万行だとファイルが壊れるしめっちゃ重くなりそう。

2,俺の目に任せろ!!(目視で件数を数える)
→この根性は別のタイミングで活かしましょう。

こんなときに正規表現が役にたちます!

この要件の法則

  1. 行の中でカンマ(,)3番目以降が郵便番号
  2. 郵便番号は3桁数字+ハイフン+4桁数字



正規表現

この文字列で検索してみましょう!

\d{3}-\d{4}

\d:正規表現で数字を表現
{n}:直前の文字列をN回繰り返す

なので上記の正規表現は「数字3つと数字4つハイフンで繋げた文字列」を表すので郵便番号を表現できたそう。
ただ、このやり方には以下2点の問題があります。

  • 「1603-8135」のような前の数字が4つの行も検索してしまう
  • そもそも誤った郵便番号が設定されていない行を知りたい(今は合致している行を選択している)

この要件を満たすために以下の正規表現で検索をかけてみます!

(?<=^([^,]*,){3})(?!\d{3}-\d{4}[^\d])


すると、想定通り住所項目に正しい郵便番号が設定されていない位置がしていされます!
テキストエディタでは選択された行数を簡単にカウントできるのでこれでいけそうです。


正規表現解説

(?<=^([^,]*,){3})(?!\d{3}-\d{4}[^\d])

左の部分で先頭から3番目のカンマ区切り位置を表現して、右側で郵便番号の書式が存在しないことを表現している。

まとめ

正規表現を使えば、あらゆるパターンの文字列を検索できる!
便利!


エンジニア
CTO室立ち上げ!技術で経営課題を解決できるエンジニア募集!
『挑戦する全ての人の機会を最大化する』VISIONの実現に向けて 複業したい方と企業を繋ぐプラットフォーム「複業クラウド」を運営しています。 ■複業クラウドの特徴 ◎創業以来変わらない想いとプロダクト 2019年の創業以来一貫して『複業クラウド』を提供しています。 『挑戦する全ての人の機会を最大化する』VISION実現に向けて、 事業ピポットすることなくより良いプロダクトを開発し続けております。 ◎手数料や中間マージンが無料 人材業界の常識を覆す。企業と個人が直接契約ができるサービスをSaaSで提供。 Another worksが契約の間に入らないからこそ実現できています。 専属のCSが採用成功に向けて伴走し、導入2ヶ月以内の採用成功率は70%以上です。 ◎新規事業開発 2020年11月よりリリースをした自治体様との事業『複業クラウド for Public』 1年間で19都道府県20自治体様にご利用いただき、 地方自治体が抱える課題と都内の優秀な複業人材のマッチングを通して 場所にとらわれない挑戦機会の最大化を実現しています。 これからも『複業』というドメインにおいて事業開発をし続けます。 ■中途在籍メンバー出身 ◎ビズリーチ、EPARK、パソナ、パーソル、JAL、レバレジーズ、フォトシンス
株式会社Another works
AI・機械学習エンジニア
AI・機械学習を使って複業を世の中に広めるプロダクトを作りましょう!
『挑戦する全ての人の機会を最大化する』VISIONの実現に向けて 複業したい方と企業を繋ぐプラットフォーム「複業クラウド」を運営しています。 ■複業クラウドの特徴 ◎創業以来変わらない想いとプロダクト 2019年の創業以来一貫して『複業クラウド』を提供しています。 『挑戦する全ての人の機会を最大化する』VISION実現に向けて、 事業ピポットすることなくより良いプロダクトを開発し続けております。 ◎手数料や中間マージンが無料 人材業界の常識を覆す。企業と個人が直接契約ができるサービスをSaaSで提供。 Another worksが契約の間に入らないからこそ実現できています。 専属のCSが採用成功に向けて伴走し、導入2ヶ月以内の採用成功率は70%以上です。 ◎新規事業開発 2020年11月よりリリースをした自治体様との事業『複業クラウド for Public』 1年間で19都道府県20自治体様にご利用いただき、 地方自治体が抱える課題と都内の優秀な複業人材のマッチングを通して 場所にとらわれない挑戦機会の最大化を実現しています。 これからも『複業』というドメインにおいて事業開発をし続けます。 ■中途在籍メンバー出身 ◎ビズリーチ、EPARK、パソナ、パーソル、JAL、レバレジーズ、フォトシンス
株式会社Another works
インフラエンジニア
SREチーム立ち上げ!一人目クラウドエンジニア募集!!
成約手数料無料で複業したい人と企業をつなぐプラットフォーム「Another works」を運営しています!企業は必要なタイミングで、必要なプロジェクトに、必要な人材を自由に仲間にすることができます! Another worksは成約手数料も初期費用も無料で、直接つながることができるので、高額な手数料や複雑な契約形態に悩むこともありません!また、約15,000名の登録者もAnother worksに入れば複業案件を自由に探すことができ、エントリーや企業にメッセージを送ることができます! 今話題の【複業】×【SaaS】領域です! トレンドの最先端の領域で、新しい働き方の概念を発信していきます! 副業市場はどんどん拡大しており、Another worksも急成長をしております!創業期メンバーとして一緒にAnother worksを盛り上げてくれるインターン生を募集しています!
株式会社Another works
アプリエンジニア
React Native/創業メンバーのエンジニアとして働きませんか?
成約手数料無料で複業したい人と企業をつなぐプラットフォーム「Another works」を運営しています!企業は必要なタイミングで、必要なプロジェクトに、必要な人材を自由に仲間にすることができます! Another worksは成約手数料も初期費用も無料で、直接つながることができるので、高額な手数料や複雑な契約形態に悩むこともありません!また、約15,000名の登録者もAnother worksに入れば複業案件を自由に探すことができ、エントリーや企業にメッセージを送ることができます! 今話題の【複業】×【SaaS】領域です! トレンドの最先端の領域で、新しい働き方の概念を発信していきます! 副業市場はどんどん拡大しており、Another worksも急成長をしております!創業期メンバーとして一緒にAnother worksを盛り上げてくれるエンジニアを募集しています!
株式会社Another works
フロントエンジニア
複業クラウドをReactで開発するフロントエンジニア募集
『挑戦する全ての人の機会を最大化する』VISIONの実現に向けて 複業したい方と企業を繋ぐプラットフォーム「複業クラウド」を運営しています。 ■複業クラウドの特徴 ◎創業以来変わらない想いとプロダクト 2019年の創業以来一貫して『複業クラウド』を提供しています。 『挑戦する全ての人の機会を最大化する』VISION実現に向けて、 事業ピポットすることなくより良いプロダクトを開発し続けております。 ◎手数料や中間マージンが無料 人材業界の常識を覆す。企業と個人が直接契約ができるサービスをSaaSで提供。 Another worksが契約の間に入らないからこそ実現できています。 専属のCSが採用成功に向けて伴走し、導入2ヶ月以内の採用成功率は70%以上です。 ◎新規事業開発 2020年11月よりリリースをした自治体様との事業『複業クラウド for Public』 1年間で19都道府県20自治体様にご利用いただき、 地方自治体が抱える課題と都内の優秀な複業人材のマッチングを通して 場所にとらわれない挑戦機会の最大化を実現しています。 これからも『複業』というドメインにおいて事業開発をし続けます。 ■中途在籍メンバー出身 ◎ビズリーチ、EPARK、パソナ、パーソル、JAL、レバレジーズ、フォトシンス
株式会社Another works
株式会社Another worksでは一緒に働く仲間を募集しています
4 いいね!
4 いいね!
同じタグの記事
今週のランキング
このストーリーが気になったら、直接話を聞きに行こう