1. ホーム
  2. regex

[解決済み] 正規表現の冒頭の感嘆符と末尾のドル記号は何ですか?

2022-02-18 13:14:13

質問

Mean.ioを使っていて、modRewrite関数の中に正規表現がありました。

app.use(modRewrite([

   '!^/api/.*|\\_getModules|\\.html|\\.js|\\.css|\\.mp4|\\.swf|\\.jp(e?)g|\\.png|\\.gif|\\.svg|\\.ico|\\.eot|\\.ttf|\\.woff|\\.pdf$ / [L]'

]));

を含むurlを全て置き換えて、より綺麗なurlに書き換えようとしているのは理解できるのですが。

/api/, _getModules, .html, .js, ..., .pdf

しかし、私は正規表現を理解するために検索していますが、まだ、何が !^ と行頭の $ を行末に追加してください。どなたか、順を追って正規表現を抽出していただけませんか?

どのように解決するのですか?

によると Apache の mod_rewrite の紹介 :

mod_rewrite では ! 文字は、正規表現の前でそれを否定するために使うことができます。これは、文字列が式の残りの部分にマッチしない場合にのみ、 マッチしたとみなすというものです。

は、その ^$ 正規表現アンカー は、それぞれ文字列の先頭と末尾の位置を主張する。

残りの部分を理解するためには 正規表現が意味するもの の投稿をご覧ください。

正規表現そのものは

  • ^ - 文字列の開始位置を保証し、...
  • /api/.* - 文字通りに一致させる /api/ と改行以外の0文字以上
  • | - または...
  • \\_getModules - マッチ _getModules
  • | - または
  • \\.html - マッチ .html
  • |\\.js|\\.css|\\.mp4|\\.swf|\\.jp(e?)g|\\.png|\\.gif|\\.svg|\\.ico|\\.eot|\\.ttf|\\.woff| - または、これらの拡張子(マッチすることに注意 jpgjpeg として ? というのは 先行するパターンの0または1回の出現に一致する )
  • \\.pdf$ - マッチ .pdf 文字列の右端 ( $ ).