【发布时间】:2012-05-07 22:04:08
【问题描述】:
谁能给我一个例子/解释这个正则表达式的作用:
(?![#$])
这是<%(?![#$])(([^%]*)%)*?> 的一部分,ASP.NET 使用它来解析服务器端代码块。我理解表达式的第二部分,但不理解第一部分。
我检查了文档,发现(?! ...) 表示零宽度负前瞻,但我不完全确定我理解这意味着什么。到目前为止,我尝试的任何看起来像 <% ... %> 的输入似乎都有效 - 我想知道为什么第一个子表达式甚至在那里。
编辑:
我想出了这个用于获取 ASP.NET 表达式的表达式:<%.+?%> 然后我找到了 Microsoft 制作的那个(上面有问题的完整表达式)。我试图理解为什么他们选择那个特定的表达方式,而我的表达方式似乎更简单。 (我想看看我的表达式是否忽略了 MS 没有的某些边界条件。)
【问题讨论】:
-
正则表达式:
<%(?![#$])(([^%]*)%)*?>- 新的 APL:⎕←{⍵⍨~{⍵∨≠\⍵}⍵∊'<>'}txt