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