マッチパターン

コンテント・スクリプトが適用されるURLは、マッチパターンにより定義される。マニフェストの content_scripts セクションにある matches に1つ以上のマッチパターンを記述することが出来る。このページでは、どのURLにコンテント・スクリプトを適用させるかを指定するために必要なマッチパターンの文法を説明する。

マッチパターンは本質的に http、https、file、ftp などで始まるURLであり、”*” を含めることが出来る。マッチパターンはいずれも、次の3つの部分から成る。

基本的な文法は次の通り。

<url-pattern> := <scheme>://<host><path>
<scheme> := 'http' | 'https' | 'file' | 'ftp'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>

この時 “*” が何を意味するかは、記述された場所がホスト部分か、パス部分かによって変わってくる。
もしホストが単に “*” と書かれていれば、それは全てのホストとマッチすることを意味する。
もしホストが “*.hostname” であれば、それは hostname もしくはそのサブドメイン全てとマッチする。
パス部分であれば、”*” はゼロ文字以上のあらゆる文字列にマッチする。

正しいマッチパターンの例

“http://*/*”

httpで始まるどんなURLともマッチする。
(“http://www.google.com/“、“http://gmail.com/inbox” など)

“http://*/foo*”

httpで始まり、パスがfooで始まる全てのURLにマッチする。
(“http://example.org/foo/bar.html” など)

“https://*.google.com/foo*bar”

httpsで始まり、google.comホストにある、fooで始まりbarで終わるURLにマッチする。
(“https://www.google.com/foo/baz/bar“、“https://google.com/foobar” など)

“http://example.org/foo/bar.html”

完全に合致するURLのみマッチする。
(“http://example.org/foo/bar.html”)

“file:///foo*”

fooで始まる全てのローカルファイルにマッチする。
(“file:///foo/bar.html“、“file:///foo” など)

“http://127.0.0.1/*”

ホストが 127.0.0.1 である全てのURLにマッチする。
(“http://127.0.0.1/“、“http://127.0.0.1/foo/bar.html” など)

誤ったマッチパターンの例

“http://*”

パスの記述が無い。

“http://*foo/bar”

ホスト部分の “*” の次には “.” もしくは “/” しか来ることが出来ない。

“http://foo.*.bar/gaz”

ホスト部分に “*” を記述できるのは、その先頭部分だけである。

“http:/bar”

スキームの区切り文字が抜けている。(”/” は “//” でなくてはならない)

“foo://*”

スキームが間違っている。