/<%(?:==|=|#)?[^>]*%>/;
这个正则表达式并不完全符合我的需要。 [^>]
部分应为no pattern of '%>'
这是可用的正则表达式功能: http://docs.kde.org/stable/en/kdebase-runtime/kate/regular-expressions.html
(贪婪量词没有?
)
答案 0 :(得分:4)
您链接的文档表示支持前瞻,因此这应该有效:
/<%(?:==|=|#)?(?:(?!%>).)*%>/
(?:(?!%>).)*
允许点一次匹配一个字符,在之后,前瞻确保该字符不是%>
序列的开头。如果支持非贪婪量词的话,这就是非贪婪的点星在.*?%>
中所做的有效。
顺便说一句,(?:==|=|#)?
并没有真正为你做任何事情。如果该部分应该是必需的,则应删除?
。如果没有,你也可以删掉整个东西;它只占用空间。