允许在处理大量可选项的第一个成功匹配之后停止模式匹配。
配置结构的示例:
<configuration>
<system.web>
<browserCaps>
<filter>
<case>
<case match="[regex expression]" with="[regex expression]">
[assignments, filter elements and case elements]
</case>
属性 | 描述 |
---|---|
match | 针对 with 属性测试的 .NET Framework 正则表达式。如果忽略,则假定匹配成功。 |
with | 要搜索的 .NET Framework 正则表达式或字符串。如果忽略,则使用由 <use> 元素指定的字符串。 |
下例演示对任何版本的 Internet Explorer 的 User-Agent HTTP 头的分析(前提是 User-Agent 字符串的格式大致保持不变)。
本例使用正则表达式及其功能来捕获子表达式,以便将版本号从 User-Agent 字符串直接移到 browser caps 对象中。
该文件以赋值语句的形式指定名称/值对,与 Internet 信息服务 (IIS) browscap.ini 文件相类似。例如,“browser=IE”行将浏览器字段的值设置为“IE”字符串。
<configuration>
<browserCaps>
<result type="System.Web.HttpBrowserCapabilities, System.Web"/>
<use var="HTTP_USER_AGENT"/>
browser=Unknown
version=0.0
majorversion=0
minorversion=0
frames=false
tables=false
cookies=false
backgroundsounds=false
<filter>
<case match="^Mozilla[^(]*\(compatible; MSIE
(?'ver'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))
(?'extra'.*)">
browser=IE
version=${ver}
majorver=${major}
minorver=${minor}
<case match="^2\." with="%{version}">
tables=true
cookies=true
backgroundsounds=true
<case match="2\.5b" with="%{version}">
beta=true
</case>
</case>
</case>
</filter>
</browsercaps>
</configuration>
所有 <filter> 和 <case> 元素都可包含赋值和其他 <filter> 及 <case> 元素。<case> 和 <filter> 组的区别如下:在评估 <filter> 组之后,继续执行该组后面的语句,但在成功匹配和评估 <case> 组后,执行会跳到封闭组的末端。