こんにちは、開発担当の福満です。 このエントリでは、URI の正規表現について扱います。 ある程度正常に動作する URI 正規表現は簡単に作れそうですが、URI の仕様には色々な要素が含まれていて、完全なものを作るのは中々難しそうです。 今回、なるべく完全に動作させるために URI の ABNF をほぼそのまま実装して正規表現を生成するコードを書いてみたので、そのご紹介をします。 URI の定義 URI は RFC3986 によって定義されています。 上記文書内に、文法が ABNF で掲載されているので、それを忠実に実装してみます。 Appendix A. Collected ABNF for URI https://tools.ietf.org/html/rfc3986#page-49 ABNF – Wikipedia Expression ABNF は 「名前 = 定義」になっています
![【Android】URI の正規表現について](https://cdn-ak-scissors.b.st-hatena.com/image/square/4cd6bcd98c8e8a2a5ae1b2ffb7d8d168c9b80c31/height=288;version=1;width=512/https%3A%2F%2Fblog.fenrir-inc.com%2Fwp%2Fwp-content%2Fthemes%2Ffenrir_dev%2Fimg%2Fcommon%2Fogp_dev_engineer.png)