必須およびオプションのパラメーターをキャッチしたい。
文字列があるとしましょう
"X or Y"
「またはY」はオプションです。
できます
scan /(.*) (or (.*))?/
オプションのcatchの結果も含むサイズ3の配列を受け取ります。
2つのXとYの可能性のみの配列を受信するようにスキャンを作成するにはどうすればよいですか?
ありがとうございました
2番目の部分の外側のグループをグループとして作成できますnon-capturing
。
/(.*) (?:or (.*))?/
これで、正規表現には2つのキャプチャグループしかありません。
X
。Y
。したがって、これら2つのグループのみを含む配列を受け取ります。したがって、あなたはその部分を手に入れることができませんor
。
このシナリオでも同じ答えが必要でした。ロジックで遊んだ後、最終的に成功するために、より良い解決策を得るためにたくさんグーグルで検索しました。そして、それはすべてのシナリオで完全に正常に機能しています。URLに1つまたは2つのパラメーターがあるかどうか。n個のパラメータで展開することもできます。とても簡単です。
私の問題の説明は、わずかな違いのある2つのURLがあったことです。
700x0/filters:quality(90)
1番目のURLにはパラメータが1つだけあり、2番目のURLにはパラメータが1つしかないことがわかります。600x0
そして正規表現は-(http|https):\/\/thumbor-cdn1.abc.com\/unsafe\/((.*?)|\/(.*?))\/(http|https):\/\/s3.amazonaws.com\/(abc|xyz)
上記のURLは例として使用されており、場合によっては有効なURLを使用できます。 ありがとうございました!