私のいくつかの入力文字列を考えてみましょう。
- http://local.app.com/local/frontend/v12/#/abcde/
- http://local.app.com/local/frontend/v12/#/abcde/!/fghij/
- http://local.app.com/local/frontend/v12/#/abcde/!/ghijk/!/klmno/
入力文字列 1 に対して正常に動作するこの正規表現を作成しました。
(?:([a-zA-Z0-9.://_]*)(/#/(?=([a-zA-Z0-9]{5})/)))
Output:
http://local.app.com/local/frontend/v12/#/,http://local.app.com/local/frontend/v12,/#/,abcde
しかし、入力文字列 1、2、3 の反復的な!/.../プレースホルダーをサポートするように拡張すると、機能せず、トークンではなく空の文字列が返されます。
(?:([a-zA-Z0-9.://_]*)(/#/(?=([a-zA-Z0-9]{5})/))(!/(?=([a-zA-Z0-9]{5})/))*)
Output:
http://local.app.com/local/frontend/v12/#/,http://local.app.com/local/frontend/v12,/#/,abcde,,