我正在尝试匹配以下内容中的#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_,\.{}<>]
实际上与先前的类声明匹配,则有关如何解决此问题的任何建议。让我们假设用字符限制黑客来解决这个问题是不可能的。