私は何年も正規表現を使用していて、いくつかのチュートリアルとリファレンスを読みました(emacs正規表現リファレンスは私の聖書です)が、マッチングを理解するのにまだ問題があります。豊富な例との正規表現のマッチングに関する優れた包括的なチュートリアルはありますか?誰かが私に正規表現のマッチングを最終的に深く理解できるリンクを教えてもらえますか?
私を悩ませている問題の例。
haystack = "[{one, {one, andahalf}},\n {{two, zero}, two},\n {{threezero}, three},\n {four}]"
pattern = "({.+})"
結果は次のとおりです。
{one, {one, andahalf}}
{{two, zero}, two}
{{threezero}, three}
{four}
さて、それは正確には何ですか?貪欲または非貪欲(C#Regexp.Matchesです)?
なぜ、oなぜ(貪欲でない)結果がそうではないのか:
{one, {one, andahalf}
{{two, zero}
{{threezero}
{four}
({}の最初の可能なペアに一致)
または(貪欲):
{one, {one, andahalf}},\n {{two, zero}, two},\n {{threezero}, three},\n {four}
({}の可能な最大のペアを作成する)
もちろん、実際の結果はまさに私が必要としているものであり、正規表現が私の心を読んでくれてとてもうれしいですが、私は彼の心を読んでもらいたいです:-Dだから、誰かが正規表現のマッチングに関するまともなチュートリアルを持っていますか?この試合がどのように行われたかを理解するのを手伝ってください。