私は#if macro do #end
以下から一致しようとしています:
class OtherClass {}
class MyClass<T:{T_1,T_2}> #if macro do #end {}
<T:{T_1,T_2}>
文字列class
と#if macro do #end
問題は、ドットまたは該当する文字セットを使用すると、OtherClass から一致することになります。したがって、おそらく次のようなものが適切です。
(.(?!class))+?)
このようなことが広く議論されているのを見たことがありません。テスト ケースでは一致しますが、実際には一致しないコンテンツで pcre_exec エラーが発生するようです。後戻りが多いのかもしれません。適用可能な文字セット[a-zA-Z0-9_,\.{}<>]
が実際に以前のクラス宣言と一致すると仮定して、これを解決する方法に関する提案。文字制限ハックではこれを解決できないと仮定しましょう。