我正在使用“特殊”标签,但我遇到了递归问题。有一个例子:
<!-- BEGIN foo --> parent text <!-- BEGIN bar --> child text <!-- END --> aditional parent text<!-- END --> <!-- BEGIN foobar --> third text <!-- END -->
当我使用[^BEGIN]
时,它工作得很好,直到我没有在标签内输入B。与[^<!\-\-]
相同。我正在玩(?!BEGIN)
和(?<!BEGIN)
而没有成功。
我的最后一次尝试看起来像这样(但它不起作用):
#<!--\s?BEGIN\s?(.+?)\s?-->((?!BEGIN).|(?R))*<!--\s?END\s?-->#s
感谢您的回答,
汤姆
答案 0 :(得分:0)
试试这个:
#<!-- BEGIN [a-z]+ -->([a-z ]*(?R)?[a-z ]*)<!-- END -->#
实际上,不要试试;正如评论中提到的,解析器应该是递归解析的首选。但是this does work。
请注意: