私は Alex Gorbatchev の Syntax Highlighter のブラシを書いて、Smalltalk コードのハイライトを取得しています。ここで、次の Smalltalk コードを検討してください。
aCollection do: [ :each | each shout ]
ブロック引数 ":each" を見つけて、その後発生するたびに "each" と一致させたい (簡単にするために、括弧内だけでなく、すべての発生としましょう)。引数には、":myArg" など、任意の名前を付けることができることに注意してください。
「:each」に一致する私の試み:
\:([\d\w]+)
これはうまくいくようです。問題は、「each」の出現を一致させることです。私はこのようなものがうまくいくと思った:
\:([\d\w]+)|\1
しかし、交互の右辺は独立した式として扱われているようで、後方参照は機能しません。
単一の式で私が望むことを達成することさえ可能ですか? それとも、(別の関数呼び出しを介して) 2 番目の式内で後方参照を使用する必要がありますか?