これは、Lazy (ungreedy) matching multiple groups using regexに関する以下の質問です。私は方法を使用しようとするが、あまり成功していない。Ruby:怠惰な正規表現マッチングを実行するには?
gitlab APIから文字列を取得し、すべてのreposを抽出しようとします。レポの名前は "https://gitlab.example.com/foo/xxx.git"の形式に従います。
これまでに試してみると、正常に動作します。
gitlab_str.scan(/\"https\:\/\/gitlab\.example\.com\/foo\//)
しかし、名前のワイルドカードを追加することは難しいですが、私は前の質問からメソッドを使用します。
gitlab_str.scan(/\"https\:\/\/gitlab\.example\.com\/foo\/(.*?)\.git\"/)
使用することを述べている怠惰なマッチングのために、それはいないようです(*。?)働く
ありがとうございました。
'[[" xxx "]]'を返します。それは期待できませんか? –
私はこれを達成するためにhttps://gitlab.example.com/foo/xxx.gitを返す方が好きですか?ありがとう! – user180574
ああ、一致するパターンが '。*?'よりも複雑な場合は '(?:...)'を使うことができます。そうでなければかっこを残してください –