--- title: マッチパターン slug: Mozilla/Add-ons/WebExtensions/Match_patterns tags: - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Match_patterns ---
マッチパターンは URL のグループを指定する方法です。マッチパターンはいくつかの URL にマッチします。マッチパターンは WebExtensions API を使う拡張機能向けに、いくつかの場所で使用されます。特にコンテンツスクリプトをロードする文書を指定するときや、webRequest
リスナーを追加する URL を指定する時に使用します。
マッチパターンを使用する API は通常マッチパターンのリストを受け取り、URL がパターンのいずれかにマッチする場合は適切なアクションを実行します。たとえば manifest.json 内の content_scripts
キーを参照してください。
記: ブラウザーによってはサポートしていないスキームがあります。
詳しくはブラウザー互換性テーブルを見てください。
すべてのマッチパターンは文字列で指定します。特別な値 <all_urls>
を除き、マッチパターンは3つの部分から成り立っています。 scheme, host, path です。 scheme と host の間は ://
で句切られます。
<scheme>://<host><path>
scheme 部は2つの形式のうち、どちらかを指定します。
形式 | マッチするもの |
---|---|
* |
"http"か"https"のみ、いくつかのブラウザーでは "ws" と "wss" |
http , https , ws , wss , ftp , ftps , data , file のうちどれか 1 つ |
指定したスキームのみ |
host部は3つ形式のうちどれか 1 つを取ります。
形式 | マッチするもの |
---|---|
* |
すべてのホスト |
*. に続くホスト名の一部分 |
指定したホストと任意のサブドメイン |
ワイルドカード無しの完全なホスト名 | 指定したホストのみ |
host部にはポート番号は入りません。
"file"スキームだけは、host部はオプションです。
ワイルドカード "*" は host の最初のみに適用できることに注意してください。
パス部は /
で開始しなければいけません。
その後、ワイルドカード *
と、URL パスとして許可される文字とを組み合わせたものが続けて入るかもしれません。ホスト部と異なり、パス部はワイルドカード *
を途中や終わりに含むことができて、さらに 2 つ以上の *
を含められます。
path の値は、URL パスに URL クエリーストリングを加えた文字列と一致します。クエリーストリングがある場合、それらの間に ?
を含んでいます。例えば、foo.bar
で終わる URL パスのあらゆるドメインに URL マッチしたい場合、マッチパターンは ['*://*/*foo.bar', '*://*/*foo.bar?*']
です。単に bar*
ではなく ?*
は必要で、最後の *
は URL クエリーストリングにも、URL パスの部分でないものにも適用するためです。
URL フラグメント識別子や、#
の後についているものは、path とみなされません。
注: path パターン文字列にポート番号を含めるべきではありません。"http://localhost:1234/*" のようにポート番号を追加するとマッチパターンは無視されます。しかし、"http://localhost:1234" は "http://localhost/*" にマッチします。
特殊な値である <all_urls>
は、サポートしているすべての scheme の URL( "http", "https", "file", "ftp", "app" )にマッチします。
パターン | マッチする例 | マッチしない例 | |
---|---|---|---|
すべての URL にマッチ |
|
|
|
すべての HTTP, HTTPS, WebSocket URL にマッチ |
|
|
|
"mozilla.org" かそのサブドメインでホストされている HTTP, HTTPS, WebSocket の URL にマッチ |
|
|
|
HTTP や HTTPS や WebSocket の"mozilla.org/"のホストのみマッチ |
|
|
|
"ftp://mozilla.org/"のみマッチ |
ftp://mozilla.org |
|
|
HTTPS URL で path が "path"のホストのみマッチ |
|
|
|
あらゆるホスト上の HTTPS URL で、パスが "path/" で URL にクエリーストリングのないものにマッチ |
|
|
|
HTTPS URL のみにマッチで、"mozilla.org"だけ、パスやクエリーストリングは問わない |
|
|
|
この URL 、あるいはフラグメント付きのこのURLにのみマッチ |
|
これ以外のすべて | |
"mozilla.org"でホストされた HTTPS URL で、パスは中間のどこかに "b" を含むもの。クエリーストリングが / で終了していればそれにもマッチ |
|
|
|
FILE URL でパスが "blah" で始まるもの |
|
file:///bleh/ (マッチしないパス) |
無効なパターン | 理由 | |
---|---|---|
resource://path/ |
サポートされていないスキーム。 | |
https://mozilla.org |
パスがない。 | |
https://mozilla.*.org/ |
"*" はホストの先頭に使用する必要があります。 | |
https://*zilla.org/ |
ホスト内の "*" は唯一の文字であるか、"."が続かなければいけません。 | |
http*://mozilla.org/ |
スキーム内の "*" は唯一の文字であるべきです。 |
|
*://* |
パスが空: "*://*/* "であるべき。 |
|
file://* |
パスが空: "file:///* "であるべき 。 |
{{Compat("webextensions.match_patterns.scheme",10)}}