0

私は#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_,\.{}<>]が実際に以前のクラス宣言と一致すると仮定して、これを解決する方法に関する提案。文字制限ハックではこれを解決できないと仮定しましょう。

4

0 に答える 0