1. ホーム
  2. regex

[解決済み] URL の行末または "/" 文字にマッチする正規表現

2023-03-21 14:16:02

質問

私は URL があり、これを正規表現にマッチさせて、いくつかのグループを取り出そうとしています。問題は、URL の末尾が または で終わるか、"/" で終わり、さらにURLのテキストが続くことです。私はこのようなURLをマッチングさせたいと思います。

しかし、このようなものにマッチしない。

で、一番いいのはこんな感じかな、と。

/(.+)/(\d{4}-\d{2}-\d{2})-(\d+)[/$]

で、末尾の文字クラスは "/" か行末のどちらかを含んでいました。しかし、文字クラスは、そこにある "$" を快く思っていないようです。これらの URL を最もよく識別し、かつ正しいグループを引き出すにはどうしたらよいでしょうか。

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

/(.+)/(\d{4}-\d{2}-\d{2})-(\d+)(/.*)?$

第1捕獲グループ (.+)

.+ は任意の文字にマッチします(行末を除く)。

  • + 量詞 - の間にマッチします。 1 無制限 回、何度でも、必要に応じてお返しします。 (欲張り)

第2捕獲グループ (\d{4}-\d{2}-\d{2})

\d{4} は数字にマッチします。 [0-9] )

  • {4} 量詞 - 正確に一致する 4

- は文字にマッチします。 - 文字通り (大文字と小文字を区別する)

\d{2} は数字にマッチします。 [0-9] )

  • {2} 量詞 - 正確に一致する 2

- は文字にマッチします。 - 文字通り (大文字と小文字を区別する)

\d{2} は数字にマッチします。 [0-9] )

  • {2} 量詞 - 正確に一致する 2

- という文字にマッチします。 - 文字通り (大文字と小文字を区別する)

第3捕獲グループ (\d+)

\d+ は数字にマッチします。 [0-9] )

  • + 量詞 - の間にマッチします。 1 無制限 回、何度でも、必要に応じてお返しします。 (欲張り)

第4捕獲グループ (.*)?

? 量詞 - の間にマッチします。 ゼロ を何度でも、何度でも、何度でも、何度でも、何度でも、何度でも、お返しします。 (欲張りな)

.* 任意の文字にマッチ (行末を除く)

  • * 量詞 - の間にマッチします。 ゼロ 無制限 回、何度でも、必要に応じてお返しします。 (欲張り)

$ は文字列の末尾に位置することを主張する