• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

株式会社ハイファイブクリエイト

東京都を拠点にWebサイト制作やシステム構築、WordPress保守管理やウェブコンサルティングを提供。

  • SERVICE
  • ABOUT
  • WORKS
  • BLOG
  • NEWS
  • CONTACT
ホーム / ブログ / TIPS / 仕事効率化したいデスクワーカーのための正規表現

仕事効率化したいデスクワーカーのための正規表現

池田祐太郎 | 2021年5月7日 公開 コメントを書く

みんな大好き、正規表現。私自身まだまだ使いこなせていませんが、必要な正規表現を覚えるだけで日々の自分の仕事の効率化に活用できます。

「正規表現はエンジニア等の一部の人のためのもの」
「正規表現は自分にとって関係ない」

そんな風に思っていたらあまりにももったいない。正規表現はたしかにプログラマーやエンジニアなどのプログラミング言語を扱う専門職がよく利用していますが、エクセルやワード、テキストエディタ等のアプリケーションを使って、メールやウェブ、各種資料からの何らかのテキストデータを処理しているデスクワーカーであれば覚えて損はありません。

正規表現を覚えたらデスクワーカーの自分にとってどう便利なのかという観点で、いくつかサンプルも踏まえてご紹介します。

目次

  • 1 デスクワーカーが正規表現で便利になること
  • 2 正規表現は全部理解しなくていい
  • 3 正規表現を使った想定例
    • 3.1 文章の先頭に文字を挿入する
    • 3.2 文章の行末に文字を挿入したい
    • 3.3 不要なHTMLタグを消したい
    • 3.4 ウェブページの表から必要なデータだけ抜き出したい
  • 4 非エンジニアでも正規表現を使うことでもっと楽できる

デスクワーカーが正規表現で便利になること

例えば、以下のような作業を行っていた場合、正規表現を活用することで効率化できる可能性があります。

  • 複数行あるテキストデータを箇条書きにするため先頭に「・(中黒)」を入れたいが、手動で一つずつ入力している
  • もらったデータがHTMLだったが、HTMLタグは不要なので全部削除したい。複数のタグがあるため、タグがある回数だけ検索して削除している(または手作業で削除)
  • ウェブページで特定の箇所をコピーしたいが、不要な場所までコピーされてしまうため、一旦ペーストしたあと手作業でいらない部分を消している

行頭や行末に特定の箇所に文字を挿入したい場合なども正規表現を使って任意の位置を指定し挿入が可能です。

また、大量の文章のなかから、「同一」の文字列を削除したり置換したりする場合は正規表現を使わなくてもエディタやエクセル上で検索/置換で可能ですが、「異なる」文字列の場合はそうはいきません。そうなると従来の検索機能は使えないため手作業でやったり複数回検索置換したりとなり、そんな時に正規表現であれば異なる文字列を探すことができるため、力を発揮します。

正規表現は全部理解しなくていい

正規表現とはなんでしょう。Wikipediaで調べてみると、

正規表現(せいきひょうげん、英: regular expression)は、文字列の集合を一つの文字列で表現する方法の一つである。

https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE

なんて出てきて、よく意味がわからないと思います。誤解を恐れず言うと、あるテキストデータに対して任意の操作をするための手法です。任意の操作とは例えば、

  • テキストデータから特定の文字を抜き出す
  • 検索した複数の文字列に対して一括で処理をする
  • 異なるが規則性がある文字列を検索して一括で置き換える
  • 特定の位置に文字を挿入する

このような操作が正規表現で可能になります。学んでみようと思って正規表現を検索すると、パターンマッチのルールがズラッと並んでいて、どこから手を付けて良いのかわからない状態になる人も多いのではないでしょうか。エンジニアであれば多くの表現を理解しておく必要が強いですが、デスクワーカーであれば全部を覚える必要はありません。自分にとって必要な正規表現が理解できていればまずはそれで良くて、必要になったときに調べてみて発見する、という使い方でまずは十分です。

正規表現を使った想定例

それでは実際に正規表現を使ってどうやって処理するのか、例を見てみます。利用しているエディタはSumblime Text 3ですが、正規表現が使えるエディタであれば基本的に問題なく実施できるはずです。(一部エディタによって利用できる正規表現が異なる場合がある)

文章の先頭に文字を挿入する

日本
アメリカ
中国
インド
イギリス

上記のような複数行の文字列に対して、箇条書きの体裁にするため行の先頭に「・(中黒)」を追加します。正規表現ではハットまたはキャレットと呼ばれる「^」を検索することで、行頭を表現できます。

■検索文字

^

検索文字には「^」のみを設定します。これで各行の先頭が選択されました。

■置換文字

・

置換文字に「・」を設定し、一括置換します。これで箇条書きスタイルになりました。

文章の行末に文字を挿入したい

9,000
540
12,022
88
134,113

今度は反対に、行末に対して文字を挿入する場合です。このような数字が並んだデータに対して、すべてに「円」をつけたいとします。その場合は「$」を検索することで行末を検索できます。

■検索文字

$

検索文字には「$」のみを設定します。これで各行の末部分が選択されました。

■置換文字

円

置換文字に「円」を設定。これですべて価格表記となりました。

不要なHTMLタグを消したい

<ul>
	<li>日本</li>
	<li><a href="">アメリカ</a></li>
	<li><span>中国</span></li>
</ul>

このようなHTMLリストがあったとします。すべてのHTMLのタグを消して、テキストデータだけにしたい場合はHTMLタグで利用している「<>(かっこ)」を検索し、「任意の一文字」を表す「.(ドット)」と「1回以上の繰り返し」という意味の「+」を使うことで、HTMLタグをすべて削除できます。これだけだとHTMLの開始タグから終了タグまで含まれてしまい含まれている文字列まで対象となってしまうため、最短マッチの「?」を追加しています。おまけで、liタグの先頭についている「タブ」も削除したいので、「\t」を検索し、さらにタブを含まないHTMLタグが除外されないように「?」を追加しています。

■検索文字

\t?<.+?>

HTMLタグだけであれば「<.+?>」だけで構いません。先頭にある「\t?」はタブを含んでいるかどうかです。

■置換文字

なし(空欄)

検索対象の文字列を削除するため、置換文字には何も設定しません。

ウェブページの表から必要なデータだけ抜き出したい

ウェブページで公開されている情報をコピーして、手元のエディタ等にペーストすると、無駄なテキストや改行が含まれてしまい、そのまま利用するのは困難なことがあります。サンプルデータとして IFIS銘柄ランキング – IFIS株予報 を利用しました。

HTMLのテーブルデータ。長いので省略

上記のようなデータから、例えば会社名だけ欲しいとします。HTMLを見てみましょう。(こちらも長いので省略&一部整形済み)

<tbody>
	<tr>
		<th rowspan="2">Code</th>
		<th rowspan="2">会社名</th>
		<th rowspan="2">業種</th>
		<th colspan="3">経常利益コンセンサス</th>
	</tr>
	<tr>
		<th>前週値</th>
		<th>最新値</th>
		<th class="pickup">変化率</th>
	</tr>
	<tr>
		<td class="center"><a href="index.php?action=tp1&amp;sa=report_top&amp;bcode=3050">3050</a></td>
		<td><a href="index.php?action=tp1&amp;sa=report_top&amp;bcode=3050">DCMH</a></td>
		<td class="center"><a href="index.php?action=tp1&amp;sa=find&amp;[email protected]">小売業</a></td>
		<td class="right">25,500</td>
		<td class="right">27,900</td>
		<td class="right">9.4<span class="scale">%</span></td>
	</tr>
	<tr>
		<td class="center"><a href="index.php?action=tp1&amp;sa=report_top&amp;bcode=3994">3994</a></td>
		<td><a href="index.php?action=tp1&amp;sa=report_top&amp;bcode=3994">マネーフォワード</a></td>
		<td class="center"><a href="index.php?action=tp1&amp;sa=find&amp;[email protected]">情報・通信</a></td>
		<td class="right"><span class="num_minus">-845</span></td>
		<td class="right"><span class="num_minus">-792</span></td>
		<td class="right">6.3<span class="scale">%</span></td>
	</tr>
</tbody>

表の会社名の箇所に使われているHTMLタグを見てみると、

<td><a href="index.php?action=tp1&amp;sa=report_top&amp;bcode=3050">DCMH</a></td>

となっており、会社名以外の行はすべてtdにclass属性が付与されていました。よって簡単に取得できそうです。今回は該当する箇所以外のHTMLをすべて削除する形で抜き出します。一度にマッチさせる方法もあるかもしれませんが、わかりやすくするために3回に分割しました。

①会社名以外の行を削除

■検索文字

<.*tbody>|<.*tr.*>|<th.+>|<.*td class.+>|</td>|\t+

会社名以外のHTMLをすべて検索します。「|」を使って複数の条件を検索し一発で任意のHTMLタグを検索できます。tbodyやtr、tdの前にある「*」はHTMLタグの閉じタグである「/」がある場合もない場合も対象に含めるようにしてます。

■置換文字

なし(空欄)

検索対象の文字列を削除するため、置換文字には何も設定しません。

②不要な連続した改行を削除

■検索文字

\n+

会社名以外の行を削除したことにより、連続した改行が残ります。こちらは不要のため削除しましょう。「\n」は改行をマッチする正規表現。「+」により2個以上の連続した改行が対象となります。

■置換文字

\n

削除してしまうと改行が一切なくなってしまうため、一つの改行で置き換えます。

③会社名の行のHTMLタグを削除

■検索文字

<td>.+?>|</a>

前半部分はtdタグとaタグです。tdはそのままで、aタグの方は「.」を使って一文字以上の任意の文字(この場合はaタグの開始タグである「<」が該当)とし、「+」で直前の文字の繰り返し、「>」の前に「?」で最短マッチとすることでaタグの前半終わり部分までをマッチさせます。「|」は先程も出てきましたので同様です。

■置換文字

なし(空欄)

削除のため何も設定しません。

ちなみに、Sublime TextのFind All機能を利用した方法だともっとスムーズに該当箇所のみ抜き出せます。それについては以前書きました。

Sublime TextのFind All機能が便利すぎて仕事が捗る

非エンジニアでも正規表現を使うことでもっと楽できる

いくつかサンプルを使って正規表現を説明しました。正規表現の説明から入ると難しい話になってしまいがちですし、すでにたくさん丁寧に説明しているウェブページがあるため省略しました。この記事の目的は「正規表現難しいと思っていたけど、覚えたら便利そうだしちょっとやってみるか」と非エンジニアの人に思ってもらうことです。

普段の仕事で色々なテキストデータを処理している場合は、通常の検索置換ではできない一歩進んだ処理ができますし、表データをわざわざエクセルを開いてペーストして該当の箇所を取り出す、といったことをしなくてももっと早くスマートに抜き出すことができます。何より、単調な作業を繰り返ししなくていいので楽できます。

特にウェブデザイナーやウェブディレクターといった立場の人はプログラムを触る機会が多いけど毛嫌いしている人もいると思うので、こういった作業も少しづつ覚えていってエンジニア寄りになれるとプロジェクトが少しでも前に進みやすくなるのかなと思います。

正規表現、私もまだまだ勉強中です。覚えるととても便利なので、少しずつやってみてはいかがでしょうか。

メールコンサルティング
WordPress保守管理サービス

Filed Under: TIPS 関連タグ:Sublime Text

池田祐太郎

WordPressの導入を10年以上にわたって手掛けており、主に小〜中規模のコーポレートサイト・ECサイト・ブランドサイト等の企画・開発・保守・コンサルティングなどを行ってきました。2012年にハイファイブクリエイトを創業し、現在はWordPressの保守やコンサルティング、ディレクションや開発業務などを担当しています。 プロフィール詳細

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.

この記事と関連する記事

エクセルを使って顧客データから任意の条件に合う顧客を抽出する方法
2022年5月11日
タグ: Sublime Text, エクセル, 効率化
カテゴリー: TIPS
Sublime TextのFind All機能が便利すぎて仕事が捗る
2021年4月24日
タグ: Sublime Text
カテゴリー: TIPS
メール作業の生産性を向上させる最低限覚えておくべき Gmail のショートカットキー
2023年1月6日
タグ: gmail, google workspace, Mac, Windows, ショートカットキー
カテゴリー: TIPS

人気記事

  1. git pull してもエラーが出てファイルが反映されないときの対処法
  2. 同一サーバー上に構築するWordPressのテスト環境の作り方
  3. WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
  4. サイト制作の要件定義書に普段書いている内容(ダウンロード可)
  5. WordPress において PHP 8.1 に更新していいかどうか検証
  6. [便利]困難な判断を10秒で AI が客観的に導き出すツールを試してみた

最初のサイドバー

WordPress保守管理サポート

Search

最近の投稿

  • [便利]困難な判断を10秒で AI が客観的に導き出すツールを試してみた
  • WordPress のクロスサイト・スクリプティング被害にあった事例を共有します
  • メール作業の生産性を向上させる最低限覚えておくべき Gmail のショートカットキー
  • タブ固定とタブ一発アクセスのショートカットキーの組み合わせでブラウザ作業の生産性を向上
  • メールフォームプラグイン MW WP Form を使いながら WP Rocket を使う場合にエラー回避する設定

カテゴリー

  • CSS初心者
  • HTML初心者
  • TIPS
  • WooCommerce
  • WordPress
  • エステサロン
  • お知らせ
  • キュレーション
  • サイトマップ
  • システム会社
  • デベロッパーツール入門
  • ブログ
  • ホームページ制作
  • ホームページ制作無料講座
  • メール
  • モバイル
  • 仕事のこと
  • 制作実績
  • 整体院
  • 美容院
  • 雑感

タグ

Android BtoC CMS css elementor git google workspace Gutenberg HTML iPhone jQuery Mac MAMP php SEO SNS ssh SSL Sublime Text Webサイト高速化 Windows WordPress WordPressカスタマイズ WordPressテーマ WordPress構築調査 WPRocket アクセス解析 アプリ クラウド クラウドソーシング サイト引っ越し サブスクリプション サーバー ショートカットキー スマホサイト スマートフォン ツール ブログ プラグイン マーケティング リニューアル 保守管理 改ざん 最適化 集客するサイト構築

アーカイブ

CONTACT

お問い合わせはこちら

Footer

  • PRIVACY POLICY
  • 情報セキュリティ基本方針
  • 特定商取引法に基づく表示
  • 転載/引用

© 2023 high five create All rights reserved.