先月かそこらで、iOSとmacOSのショートカットアプリとAutomatorアプリをそれぞれ取り上げてきました。 どちらもAppleエコシステムの自動化に関しては強力な存在であり、この秋にmacOS Montereyを皮切りに、ShortcutsはすべてのAppleデバイスで頼りになる自動化アプリになります。 これが、この記事で非常に強力なトピックである「Shortcutsアプリでの正規表現の使用」について説明したかった理由です。
私はコンピュータサイエンスとプログラミングのバックグラウンドを持っていますが、どういうわけか正規表現に出くわしたことはありませんでした。 名前が怖かったのかもしれませんし、コードだったのかもしれません。これは、私が今まで見た中で最も読みにくいコードの一部です。
いずれにせよ、過去数か月にわたってShortcutsアプリを取り上げた後、正規表現をさらに調査することにしました。 そして、私が発見したのは、Automatorだけでなく、Shortcutsで遭遇した多くの制限が、正規表現で克服できるということでした。
つまり、これらのアプリに機能が不足しているのではなく、私が教育を受けていなかったのです。
したがって、今日の投稿では、あなたと私は一緒に正規表現の詳細を学びます。 そうすれば、これらの各アプリを最大限に活用できます。
正規表現の基本(それが何であるかから始めて)、Shortcutsアプリ、いくつかのWebサイト、および 自分で正規表現を学びたくない場合に使用できるリソース。次に、正規表現のコアコンセプトとメカニズムについて説明します。 言語。
さあ、始めましょう!
コンテンツ
-
正規表現(つまり、正規表現)とは何ですか?
- 正規表現でできること
- ショートカットアプリで正規表現をどのように使用できますか?
- regex101.comを使用して、正規表現をテストします
- ショートカットアプリで正規表現を使用する方法を学びたくない場合は、こちらをお読みください
-
初心者向けの正規表現:ショートカットを使用した正規表現の使用を開始します
- 正規表現フレーバーとは何ですか?
- ショートカットを使用して正規表現の学習を開始するのに役立つWebサイトとリファレンス
- ショートカット付きの正規表現を使用して基本的なテキスト検索を実行する方法
- 正規表現検索に変数コンポーネントを追加する
- 範囲は検索を広げることができます
- ショートカットを使用して正規表現検索から単語や文字を除外する方法
- ワイルドカードを使用すると、より多くの検索オプションを使用できます
- 数量詞を使用して、探しているテキストの長さを指定します
- 知りたい定量化子が他にもいくつかあります
- テキスト文字列の最初と最後の文字を検索します
- ショートカット付きの正規表現のグループ化機能を使用してテキスト文字列を保存する
-
それで?
- これをどのように分解しますか?
-
自動化を次のレベルに引き上げるために、ショートカットで正規表現の使用を開始します
- 関連記事:
正規表現(つまり、正規表現)とは何ですか?
正規表現、つまり「regex」は、大きなテキスト内のテキストを検索するために使用できるコードです。
わからない場合は、別のテキスト内のテキストをプログラミングでは「文字列」と呼びます。 たとえば、「緑」という単語は、「今日は緑のズボンをはいた」というテキストの文字列です。
言い換えると、正規表現は、テキストのより大きな本文でテキストの文字列を見つける方法です。 また、正規表現はコードで記述されているため、これを使用してかなり複雑な操作を実行できます。
たとえば、「email」という単語を検索する場合は、emailを検索する正規表現コードを簡単に記述できます。
ただし、段落内にあるメールを検索したいが、そのメールが何であるかが正確にわからない場合は、メールのような形式のテキスト文字列を検索する必要があります。 つまり、「[メール保護]" フォーマット。
ここで、段落から1つのメールを検索するだけでなく、 毎日 Eメール。 たぶん、それらを別の場所にすばやくコピーしたり、新しい形式に更新したり、すべてが「[メール保護]“.
正規表現に習熟し、経験を積むにつれて、これらすべてのことやそれ以上のことができるようになります。

正規表現でできること
さて、私が今提供したメールの例はそれほど実用的ではないかもしれません。 心配しないでください。これは、Shortcutsアプリで正規表現を使用して達成できることの限界からはほど遠いものです。
一般的に、正規表現で実行できることはすべて、次の4つのカテゴリのいずれかに分類されます。
- より大きなテキストでテキストの文字列を検索します(つまり、テキストのページで単語/文字列/文字列のタイプを検索します)。
- テキストの文字列が目的の形式と一致することを確認します(つまり、テキストの文字列が大文字と小文字の区別/順序付け/句読点が適切に設定されていることを確認します)。
- テキストの特定の領域でテキストを置き換えるか挿入します。
- 指定されたポイントでテキストの文字列を分割します(たとえば、カンマがあるたびにテキストを分割します)。
これらの種類の関数のそれぞれと対話するために使用できる深さのレベルと、それらを組み合わせる方法により、正規表現は、テキストを解析および操作するための非常に強力なツールになります。
ショートカットアプリで正規表現をどのように使用できますか?
さて、これで、正規表現が何に使用されるかについての基本的な考え方がわかったと思います。 これは、テキストが何であるかが正確にわからない場合でも、テキストの検索に使用できるコードの一種です。
では、これはショートカットでどのように役立ちますか? ショートカットにスクリプトを追加するのと同様に、基本的な自動化から移行する方法です(玄関のドアが開いたら私にテキストメッセージを送ってください)より高度なオプション(職場からZoomミーティングのメールを受け取るたびに、ミーティングのカレンダーイベントを自動的に作成します).
ショートカットで正規表現を使用して、入力が正しいことを確認できます。 たとえば、URLでのみ機能するショートカットを作成する場合、ショートカットの先頭で正規表現を使用して、ユーザーがURLで自動化を実行していることを確認できます。
正規表現とスクリプトを組み合わせて、強力なショートカットを作成できます。 例えば、 このショートカット 正規表現とスクリプトを使用して、バーコードをお気に入りのストアのURLに変換します。
MacでShortcutsアプリを使用する場合(2021年秋に予定)、正規表現を使用してテキストの一部に対してバッチアクションを実行できます。 たとえば、選択したテキスト内のすべての電子メールを順序付きリストとしてコピーできます。 または、プライバシーを確保するために、ドキュメント内のすべての名前を「*」文字に置き換えることができます。
あるアプリからテキストの本文をコピーし、別のアプリの設定に一致するように再フォーマットしてから、別のアプリに貼り付けることもできます。すべて1回の右クリック操作で行えます。
つまり、正規表現を使用すると、Shortcutsアプリを使用してテキスト処理を完全に制御できます。 最初はあまり役に立たないように聞こえるかもしれませんが、それが存在することがわかったので、この機能によって改善できるショートカットの数にきっと気付くでしょう。 また、多くのショートカットは正規表現なしでは不可能であることに気付くでしょう。
regex101.comを使用して、正規表現をテストします
ショートカットで正規表現を使い始めると、フラストレーションのポイントに遭遇します。
正規表現コードをテストするのは本当に難しいです。 そして、それは正規表現に固有のものではありません。 ショートカットアプリで何かをテストするのはちょっと面倒です。 これを行う唯一の方法は、ショートカットを実行することです。 組み込みのショートカット機能をテストするだけの場合、この方法は悪くありません。
ただし、コードをテストする場合、これでは行ごとのチェックができず、多くのフィードバックが提供されません。
そのためには、regex101.comの使用をお勧めします。 正規表現コードをリアルタイムで入力できるサイトです。 同じWebページのテキストエディタにテキストを入力することもできます。 それぞれを入力すると、正規表現が機能しているかどうか、機能している理由と機能していない理由がわかり、見つかった一致に関する情報が得られます。

regex101.comは、ショートカットでサポートされているものとは異なる正規表現のフレーバーを使用しています(これについては後ほど詳しく説明します)が、あまり多くの問題が発生しないように十分に近いものです。
このツールを使用すると、最初に正規表現を記述して、意図したとおりに機能するようになったら、それをShortcutsアプリにコピーできるので便利です。
ショートカットアプリで正規表現を使用する方法を学びたくない場合は、こちらをお読みください
わかりました。ショートカットで正規表現を使用する方法を誰もが学びたいとは限りません。 それはスキルであり、それは時間と練習が必要になることを意味します。 ショートカットアプリの他のドラッグアンドドロップ機能ほどシンプルではありません。
心配ない! 正規表現を学ぶために時間を費やしている人ほど、Shortcutsアプリから多くのことを引き出すことはできませんが、利用できるオプションはまだあります。 つまり、オンラインで、Shortcutsアプリにコピーして貼り付けることができる正規表現コードバイトのリストを作成したサイトやページがあります。
正規表現を学習したくない場合に確認するためのリンクは次のとおりです。
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
- https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
- https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
- http://www.rexegg.com/regex-cookbook.html
これらのリンクを読むだけで、作成したいショートカットの一般的な正規表現ソリューションを見つけることができるはずです。 これは教育のないオプションではありません。あなたが見ているもののコツをつかむにはまだ少し時間がかかるからです。 しかし、正規表現を使用する時間がない人にとっては、はるかにシンプルで理想的なソリューションです。
とはいえ、特にシェルコードや初心者向けプログラミングの経験がある場合は、正規表現を学ぶのはそれほど難しくないことを認めなければなりません。 正規表現は最初はぎこちないように聞こえましたが、記事を読んでregex101.comで遊んだ後、ショートカットの正規表現を書き始めることができました。
それはただの親しみやすさです。十分に長く見てみると、それほど奇妙に見えることはなくなります。 ですから、時間があり、ただ怖がっているだけなら、そうしないでください!
初心者向けの正規表現:ショートカットを使用した正規表現の使用を開始します
さて、十分な序文! 正規表現とは何か、何ができるのか、なぜそれを学ぶ必要があるのか、そしてそれを学びたいかどうかを判断するのに十分な情報を持っている必要があります。 次に、要点を説明します。
以下にたくさんのコンテンツがありますが、心配しないでください! この記事は、より多くの学習ガイドになります。 正規表現が使用するメカニズムを理解できるように、各セクションをざっと読むことをお勧めします。 これは、正規表現が何であるかについてまだ混乱している場合にも、頭を包むのに役立つはずです。
スキミングしたら、regex101.comを開いて、以下の各セクションの各ツールで遊ぶことをお勧めします。 これは、概念が実際にどのように見えるかを確認し、記憶力を向上させるのに役立ちます。 それが済んだら、この記事を参照ポイントとして扱うことができます。これは、正規表現の断片を忘れたときに戻ってくることができるものです。
さあ、行こう!
正規表現フレーバーとは何ですか?
まず、正規表現のフレーバーを見ていきます。 心配しないでください。これは、ショートカットを使用した正規表現の日常的な使用には影響しません。 始める前に知っておくべきことです。
「フレーバー」として知られている正規表現にはさまざまなバージョンがあります。 これらの異なるバージョンはまだ非常に似ています。 1つのフレーバーの読み取りと書き込みを学ぶことができれば、それらのいずれかを読み取ることができるはずです。 正規表現コードのフォーマット方法にはわずかな違いがあります。
プログラミングでは、これらのフォーマットの詳細は「構文」として知られています。 これは、コードを記述しているアプリがそのコードを理解できるようにするために、コードを記述しなければならない方法です。
構文が重要な理由は次のとおりです
「ねえ、友達、あなたの一日はどうですか?」
「、友達になりますか? こんにちは、どうやって」
どちらの文も同じ単語、文字、スペースを持っています。 ただし、意味があるのは1つだけです。これは、従来の構文に従っているためです。
コーディングでは、1つのプログラミング言語が最初のバージョンを理解するが、2番目のバージョンは理解しない場合があります。 ただし、別のプログラミング言語では、2番目の言語は完全に理にかなっているかもしれませんが、最初の言語はぎこちないように見えます。 ただし、英語が話せる人にとっては、意味を理解するのに少し手間がかかるとしても、おそらく両方の行の意図を理解できるでしょう。
それが(一種の)正規表現のさまざまなフレーバーのようなものです。 それらはすべて少し異なり、あなたに少し似ています。 ただし、使用しているアプリに適切なフレーバーを使用している必要があります。そうしないと、そのアプリはあなたが書いたものの手がかりを得ることができません。
ショートカットアプリは正規表現のICUフレーバーを理解するので、それが使用したいフレーバーです。 regex101.comサイトには、ページの左側から選択できるいくつかの異なるフレーバーがあります。 ただし、ICUと非常によく似たPCREを使用します。
オンラインでは間違いなくさまざまなフレーバーに遭遇するため、正規表現にはさまざまなフレーバーがあることを知っておくことが重要です。 盗みたい正規表現を少し見つけても、ショートカットで機能させることができない場合、または正しく表示されない場合は、どのフレーバーで書かれているかを確認してください。
ショートカットを使用して正規表現の学習を開始するのに役立つWebサイトとリファレンス
正規表現を書く実際の仕組みを探求する前に取り上げたいもう1つのことは、リソースです。 私は、この投稿が正規表現の学習に関する網羅的なリソースであるとは決して主張していません。 これは、ショートカットで正規表現を使用したい人にとって役立つ出発点となることを目的としています。
正規表現をさらに深く掘り下げたい場合、またはこの記事が必要なヘルプを提供していないと感じた場合は、次の記事、ガイド、およびツールのいくつかを確認できます。
- https://regex101.com –正規表現コードをリアルタイムでテストできるWebサイト。
- https://www.shortcutfoo.com/app/dojos/regex/cheatsheet –各キャラクターの行動を忘れたときのためのチートシート
- http://www.rexegg.com –このWebサイトは、正規表現について知っておく必要のあるすべてのことを学ぶための包括的なリソースです。 正規表現に習熟したい場合は、これをチェックしてください。
- https://scottwillsey.com/blog/ios/regex1/ –これは、ショートカットでの正規表現の使用に関する4部構成のブログシリーズです。 私はこのガイドとは非常に異なるアプローチを取っているので、この記事の素晴らしいコンパニオンシリーズになるはずです。
- Stack OverflowとRedditはどちらも、正規表現の質問と進捗状況を共有してアドバイスと回答を得るのに適したWebサイトです。
これらのリソースは、にリストされているものとは異なります。 ショートカットアプリで正規表現を使用する方法を学びたくない場合 それらはすべて、実際に正規表現の学習を開始する必要があるため、セクションです。 それらはより包括的ですが、他は単なる参照ポイントです。
ショートカット付きの正規表現を使用して基本的なテキスト検索を実行する方法
大丈夫! これで、誰もが待ち望んでいたポイントに到達しました。ショートカットで正規表現を使用するための基本を学びます。
基本的な検索から始めましょう。これは、正規表現で実行できる最も簡単な方法です。 前述のように、regex101.comを別のタブで開いて、フォローできるようにすることをお勧めします。
最も基本的に、正規表現は検索します(または マッチ)入力したものは何でも。 たとえば、私が入力した場合 大丈夫
私の正規表現コードとして、このガイドでは「Alright」という単語のすべてのインスタンスが見つかります。
大文字と小文字、間隔、句読点が重要です。 つまり、 大丈夫
, 大丈夫
, 大丈夫!
、 と 大丈夫 、
すべて異なる結果を生み出すでしょう。
以上です! 特殊文字を使用せずに正規表現検索に何かを入力すると、正規表現は入力したものと完全に一致するものすべてに一致します。
キャッチが1つあります! キーボードの一部の文字も特殊な正規表現文字です。 これは、正規表現コードで何らかの機能を実行することを意味します。
NS ?
シンボルはそのような文字の1つです。 正規表現コードで数量詞として使用されます。 それで、「大丈夫?」を検索しようとすると 入力して 大丈夫?
正規表現コードとして、必要なものを取得することはできません。

これを修正するには、「?」を使用することを指定する必要があります。 特殊文字としてではなく、文字列として。 このキャラクターまたは他のキャラクターに対してこれを行うには、 \
特別なプロパティを無効にする文字の直前の記号。
それで、あなたが「大丈夫?」を検索したいなら 正規表現を使用すると、コードは次のようになります。
大丈夫\?

特定の文字が正規表現によって特殊文字として扱われるかどうかわからない場合は、確認できます このチートシート 正規表現のすべての特殊文字。
「または」文字を使用して複数の単語を検索する
正規表現を使用して文字列を検索するもう1つの重要なコンポーネントは、「or」関数を使用することです。 これは、2つの単語/文字の間に配置して、「これまたはこれに一致する」と言うことができる文字です。
たとえば、テキストの本文で「alright」と「Alright」という単語を検索する場合は、 |
キャラクター。 そのようです:
わかった|わかった
見つけるのに苦労している場合 |
キャラクター、ホールド シフト キーを押して、 \
鍵。 上にあります 戻る ほとんどのキーボードのキー。
正規表現検索に変数コンポーネントを追加する
さて、ニュートラル正規表現がどのようなものかがわかったので、最初の特殊文字をピックアップします。 それは角括弧になります、それはこれらのものです []
.
これらの括弧内に何を入れても、正規表現検索の可変コンポーネントと見なされます。 括弧内には好きなだけ文字を入れることができますが、一致ごとに有効な文字は1つだけです。
わかりました、それは少し複雑に聞こえますが、そうではありません! 実際には次のようになります。
-
[大丈夫
「Alright」という単語と一致します。 ちょっと無意味です。 -
[AB]大丈夫
「Alright」と「Blright」の両方に一致します。 -
Alr [iouxyz] ght
「Alright」、「Alroght」、「Alrught」、「Alrxght」などに一致します。

角かっこ内の文字を組み合わせたり、正規表現の同じ行で複数の角かっこを使用したりできます。 [AB] r [i1] gh [tuvwxyz]
正規表現の有効な部分です。 ただし、数分前ほど混沌としているようには見えないことを願っています。
範囲は検索を広げることができます
ショートカットで役立つ正規表現の次のビットは範囲です。 範囲を使用すると、受け入れる文字の範囲を指定できます。
前のセクションで、私の括弧に多くの連続した文字が含まれていることに気づいたかもしれません。 最長だった [tuvwxyz]
. これらの文字は、アルファベットで同じ順序で隣り合って表示されます。
つまり、入力する代わりに範囲を使用できるということです。 これは次のようになります。
Alrigh [t-z]
この正規表現コードは、と同じことを行います Alrigh [tuvwxyz]
. ただすっきりと書きやすくなっています。
同じ範囲を次のように置き換えることができます [a-z]
アルファベットからの小文字を受け入れたい場合。 またはあなたは使用することができます [0-9]
1桁の数字を受け入れたい場合。
同じ角かっこ内で範囲を組み合わせることもできます。 たとえば、これ Alr [i-ux-z] ght
「Alright」、「Alroght」、「Alrxght」、および「Alryght」は受け入れられますが、「Alraght」または「Alrvght」は受け入れられません。

ちなみに、このコードで受け入れられる「申し分なく」という言葉には他にもバリエーションがあり、受け入れられないバリエーションもたくさんあります。 それは物事を短く保つためのほんの短い選択です。
あなたが何を理解するのに苦労しているなら [i-ux-z]
つまり、次のように書かれているのを見ると役立つかもしれません。
[i-u、x-z]
これは正しい正規表現構文ではありません。範囲を区切るためにコンマを使用しないでください。 しかし、うまくいけば、それはそれがより理にかなっているのに役立ちます!
範囲を区切るために正規表現にコンマを入れる必要はありません。また、範囲を並べて配置する必要もありません。 あなたはそれをに変更することができます [i-uabcx-z]
. これは、以前と同じ範囲に加えて、文字「a」、「b」、および「c」を受け入れます。
ショートカットを使用して正規表現検索から単語や文字を除外する方法
さて、今、私たちはどこかに到達しています! これまでこの記事を読んだことがあれば、以下のコードを見て、それが何に一致するかを理解できるはずです。
Ap [p-r] le [Tt] ool [BbLF] ox
あなたがそれを読むことができれば、あなたは正規表現コードの一部が含まれていることを知っています 多くの 「AppleToolBox」という単語の可能なバリエーションの。 では、範囲を変更せずに受け入れるバリエーションの数を減らしたい場合はどうでしょうか。
そこで登場するのが「not」のキャラクターです。 次のようになります。 ^
. (私がしたように)キーボードでそれを見つけるのに苦労している場合は、 シフト を押して 6 キーボードのキー。
を使用するには ^
文字、除外したい文字の先頭に配置します。
落とし穴があります! NS ^
文字は正規表現関数の外では機能しません。 文字「A」の前に配置して、その文字を検索から除外することはできません。 正規表現コード ^ A
大文字の「A」を検索するだけです。
代わりに、角かっこと他の正規表現の特殊文字と組み合わせてください。
たとえば、「A」で始まらない「Alright」という単語のインスタンスを検索する場合は、次のコードを使用します。 [^ A]大丈夫
.

範囲と組み合わせることもできます! 角かっこの先頭に置くだけで、その角かっこの中に範囲が含まれているものはすべて検索から除外されます。 そのようです:

検索から特定の単語を除外したい場合はどうなりますか?
私はこの情報を見つけるのに苦労しました。 ただし、Stack Overflowユーザーには解決策があり、次のようになります。
^(?!(word)$)。+ $
交換するだけ 言葉
検索から除外したい単語を使用します。 そのようです:

あなたはそのスタックオーバーフローの投稿を読むことができます ここ この特定のユースケースについて詳しく知りたい場合。
ワイルドカードを使用すると、より多くの検索オプションを使用できます
それはワイルドカードに私たちをもたらします。 ピリオドであるワイルドカード文字 .
、は任意の1文字を表すために使用され、バーなし。 入力するだけなら .
ショートカットを使用した正規表現コードとして、テキスト本文のすべての文字を個別の一致として返します。

もちろん、その目的で使用することはお勧めしません。 代わりに、単語内の1文字の代わりに使用することをお勧めします。 例えば、 Alr.ght
「Alright」、「Alrxght」、「Alr」と一致します
そして、それはほとんどそれです! ワイルドカード文字は非常に理解しやすいです。 それはすべてに一致します! これは、固有の文字を持ちながら特定の形式に一致する文字列を見つけるのに役立ちます。
たとえば、電子メールはすべて同じではなく、かなり似ているように見えます。 ワイルドカードを使用すると、そこにあることがわかっている要素(「.com」や「@」など)と、知らない文字(「my_email567」、iCloud、「Gmail」など)を組み合わせることができます。
もう1つの興味深いユースケースは、 .
特定の長さの文字列を検索する文字。
たとえば、テキストの本文で4文字の文字列をすべて検索したい場合は、次のように使用できます。 ...
両側にスペースがあります。

そして、同じテキスト本文に含まれる7文字の文字列はすべて次のようになります。

これは、特定の長さの文字列を見つけるための完全な方法ではないことに注意してください。 上記の例でわかるように、一致してはならない文字列と、無視されるべき文字列があります。 を使用できることを覚えておくことは興味深いです .
文字を数える文字。
また、 .
正規表現の特殊文字です。 つまり、追加する必要があります \
生理を検索したい場合は、その前に。 つまり、使用する必要があります 大丈夫\。
「わかりました」と一致します。
数量詞を使用して、探しているテキストの長さを指定します
了解しました。技術的に使用できます。 .
文字は、特定の文字数を占める文字列を検索します。 ただし、ほとんどの場合、より具体的にする必要があります。
そこで、数量詞が登場します。 数量詞を使用すると、ショートカットで正規表現を使用するときに探している文字列の長さを指定できます。
たとえば、具体的に3文字の長さの単語を検索するとします。 これを指定するには、次の角かっこを使用します。
{}
これらの後にこれらのブラケットを配置すると []
角かっこ、この中の文字数と一致する文字列が必要であることを指定しています {}
およびこれで指定された文字の範囲 []
.
今はあまり意味がないと思いますので、例を見てみましょう。
本文に記載されている年を検索するとします。 1年は4つの数字で構成されているので(明らかに毎年ではなく、ここで私に従ってください)、このコードを使用して、そのテキスト内の年を一致させることができます。
[0-9]{4}
このコードは、具体的には4文字の長さの0から9までの文字で構成される文字列が必要であることを示しています。 次のスクリーンショットで、この特定の文字列がどのように検出されるかを確認できます。

この正規表現コードにはいくつかの問題があり、スペースや句読点が考慮されていないことに注意してください。 したがって、コードが「12345678」のように4文字を超える数字を検出した場合、文字列「1234」と文字列「5678」が検出されます。
この問題を解決するには、コードの先頭にスペースを追加し、その後に角かっこを追加する必要があります。 {4}
別のスペース、ピリオド、疑問符、コンマ、および感嘆符が含まれています。 そうすれば、スペースの代わりに句読点が付いている数字の文字列を見逃すことなく、長い数字の文字列を見落とすことができます。
数量詞を使用して、複数の長さの文字列を指定することもできます。 たとえば、4文字の文字列だけでなく、7文字と11文字の文字列も検索したい場合があります。 これは次のようになります。
[a-z] {4,7,11}
知りたい定量化子が他にもいくつかあります
さて、まだまだ定量化子があります! これらの最後のいくつかの数量詞は、文字列の長さをあまり具体的にせずに指定したい場合に使用します。
たとえば、正規表現が一致できる任意の長さの文字列を検索するとします。 名前のように! 名前(西欧諸国では)は1つの大文字で始まり、ランダムな量の小文字で終わり、その後にスペースが続きます。 名前を見つけるには、次のコードを記述します。
[A-Z] [a-z] *
[A-Z]
文字列の最初の文字を大文字にすることを指定します。 [a-z] *
文字列の残りの部分を小文字で構成する必要があることを指定しますが、後に続く文字の数は関係ありません。 そして、最後のスペースは、小文字の最後にスペースが見つかると、試合を終了することを意味します。
正規表現のゴールデンコンボは .*
. つまり、任意の文字を無限に一致させるということです。 つまり、テキスト全体が1つのアイテムとして一致します。
知っておく必要のある次の数量詞は +
. これは *
ただし、ゼロ文字の文字列とは一致しません。 *
長さのない文字列を含む、任意の長さの文字列に一致します。 +
一方、少なくとも1文字以上の文字列が必要です。
最後に、 ?
数量詞。 これは奇妙なものです。 文字列の長さが0文字または1文字であることを指定します。 それだけです–何もないか1つだけです。 したがって、コードを使用する場合 [a-z]?
最初と最後にスペースを入れると、テキストの本文内で1文字が検索されます。
テキスト文字列の最初と最後の文字を検索します
ショートカットでの正規表現の使用に関するガイドの終わりが近づいています。 ショートカットで使用する正規表現コードはあと2種類です。
1つ目は、文字列の開始方法や終了方法に基づいて文字列を照合できる文字です。
角かっこで囲まれていない場合は、 ^
キャラクターの役割は、「除外する」から「で始まる」という意味に変わります。 文字列は必要なもので始まる必要があることを指定します。 たとえば、あなたが書く場合 ^ A
、これは、文字列「Alright」、「Apple」、および「A」の文字「A」と一致します。
ただし、単語全体とは一致しません。 そのためには、次のように変更する必要があります ^ A [A-Za-z] *
. その単語が大文字の「A」で始まる限り、それは段落/文字列の最初の単語と一致します。
補足として、あなたは書くことができます [A-Za-z]
なので [A-z]
. それは同じことを意味します。あなたが学んでいるとき、最初のものが少し明確であることがわかります。
文字列の終わりを指定するには、 $
キャラクター。 それはと同じように動作します ^
キャラクター。 唯一の違いは、括弧/文字列の先頭ではなく末尾に書き込むことです。
たとえば、「le」で終わる文字列/段落を検索する場合は、次のコードを使用します。 [A-z] * le $
. 文字列または段落の最後にある限り、「Table」、「apple」、および「capable」と一致します。
文字列の末尾にスペースまたは句読点がある場合、正規表現はこの一致を拒否します。 "テーブル。" このコードと一致しません。
これを修正するには、句読点を考慮に入れることができます。 このコードは、句読点の後にスペースが続くなど、文字列の最後に発生する可能性のあるさまざまな形式の句読点と間隔を考慮しています。
[A-z] *(le [\。\?!、]?[]?)$
そのコードは、「Able」、「table。」、「stable」、および「capable?」と一致します。 “.
ショートカット付きの正規表現のグループ化機能を使用してテキスト文字列を保存する
大丈夫! ショートカットでの正規表現の使用に関するAppleToolBoxガイドの最後に到達しました。 学習する必要のある正規表現関数があと1つあり、それがグループ化です。
グループ化は、作成した正規表現コードを使用して処理を実行できるようにするため、おそらく正規表現の最も重要な機能です。 それがなければ、正規表現は単なる検索機能です。 文字列がより大きなテキスト本文内に存在するかどうか、つまり「true」または「false」を返すかどうかのみがわかります。
ただし、グループ化すると、正規表現コードの結果を保存できます。 つまり、一致をコピーし、変数に格納し、他のテキストに置き換え、フォーマットを変更し、正規表現でやりたいことをすべて行うことができます。
幸い、グループ化はとても簡単です。 グループ化したいものは何でもかっこで囲んでください ()
. かっこで囲んだものはすべてグループとして扱われます。
正規表現コードの行全体を括弧内に入れると、次のようになります。 (.*@.*\..{3})
、その後、そのグループはコードによって記憶されます。これにより、後で呼び出すことができます。
必要なときはいつでもグループのみを使用することが重要です。 これらはメモリに保存されるため、コードのパフォーマンスが低下する可能性があります。 必要なときに備えてグループを保存してください。
グループで整理することもできます
グループを使用して、ショートカットを使用して正規表現コードを整理することもできます。 これを行う場合、括弧内のグループは必ずしも記憶されません。
たとえば、最後の文字が何であるかを気にしないことを除いて、「こんにちは」という単語と一致させたいとします。 小文字または大文字、あるいは数字でもかまいません。 「hell3838djdjajaksks」と「Hello」は一致としてカウントされます。 一方、「地獄」は数えるべきではありません。
これを機能させるために、私はコードを書きます 地獄[A-z] | [0-9] +
. しかし、これは私が得た結果です:

思った通りに合わないのは +
にのみ適用されています [0-9]
ブラケット。 両方のブラケットに適用する必要があります。
さらに、このコードは私がどちらかが欲しいと言っています 地獄[A-z]
また[0-9]
. つまり、「地獄」で始まり文字で終わる単語と一致するか、数字の文字列を探します。 私が実際に必要としているのは、文字または数字で終わる「地獄」という単語のインスタンスと一致することです。
これを修正するには、グループを使用してコードを次のように書き直します。 地獄([A-z] | [0-9])+
. 現在、「地獄」という単語の後に任意の文字または数字が続く単語を探しています。 そして、 +
は両方の括弧に適用されます。少なくとも1つの文字または数字が存在する限り、文字と数字の任意の組み合わせにすることができます。
下のスクリーンショットでわかるように、このグループは、必ずしもそのグループ内に情報を保存することなく、私の問題を解決します。

それで?
以上です! これは、ショートカットで正規表現を使用することについて知りたいと思うことのほとんどすべてです。 うまくいけば、最初は意味がなかったとしても、今すぐ正規表現の実験を開始できる自信があります。
正規表現の基本を理解したので、ショートカットで正規表現を使い始める準備ができました。 ショートカットは、次のアクションで正規表現入力を受け入れます。
- マッチテキスト
- テキストを置き換える
これらの2つのショートカットアクションを使用して、ショートカットに正規表現を挿入できます。
これをショートカットの自動化機能と組み合わせると、非常に強力なツールを自由に使用できます。
正規表現を使用すると、ショートカットでのテキストの書式設定が簡単になり、電子メール、テキスト、Webサイトから情報を取得できます。 ファイル、およびカレンダーイベントは、指定された形式に従うテキストを作成し、入力が正しく入力されたことを確認し、 もっと。
たとえば、メールを照合したいとします。 テキストの文字列が電子メールであることを確認する必要があるかもしれません。あるいは、テキストの本文から電子メールをプルしたい場合もあります。
これをどのように分解しますか?
メールの基本的な構造は、文字、数字、文字の組み合わせの後に「@」記号が続き、その後に続くことをご存知でしょう。 その後にGmailやiCloudなどのWebサイトの名前が続き、その後に「.com」、「。org」、またはその他の種類の3文字のトップレベルが続きます。 ドメイン。
これを正規表現で記述するには、直後に続く1文字以上の文字列が必要であることを指定する必要があります。 「@」記号、少なくとも1文字の別の文字列、「。」、3つの文字列 文字。 これは次のようになります。
[メール保護]+\..{3}
これをに貼り付けると マッチテキスト また テキストを置き換える ショートカットのアクションを使用すると、メールアドレスを検索、保存、操作できる自動化が実現します。
この種の問題解決を使用して、独自の正規表現ソリューションを考え出したり、他の人がオンラインで作成したものを見つけたりすることができます。
自動化を次のレベルに引き上げるために、ショートカットで正規表現の使用を開始します
そして、それは、友達、本当にそれです。 この記事と一緒にフォローして楽しんでいただけたでしょうか。 これは、私がAppleToolBox用に書いた中で最も野心的な作品の1つです。 私はそれを書くために自分自身に正規表現を教えなければなりませんでした、そしてそうすることで私はあなたがそれを学ぶのを手伝うことができたことを願っています。
ショートカットで正規表現を使用することは、スマートフォンやコンピューターで他のことを行う方法を学ぶことと同じです。 時間と忍耐を注ぐだけで、最終的にはそこにたどり着きます。
Appleに関するその他のガイド、チュートリアル、ニュースについては、残りの部分をチェックしてください。 AppleToolBoxブログ.
大丈夫 [A-Z] [a-z] +
、また会いましょう!