“四向处理”指很多正则表达式引擎所支持的正负 Lookahead 和 Lookbehind 功能。并不是所有的正则表达式引擎都支持验证四向处理。这些构造不使用字符,即使它们可以匹配字符。有些模式可能在不使用四向处理的情况下无法描述。特别是当模式中存在的一部分依赖于另一部分,如果不使用四向处理,则不能描述这样的模式。下面介绍了每个四向处理的语法。
语法 说明(?=...)
正 Lookahead
(?!...)
负 Lookahead
(?<=...)
正 Lookbehind
(?<!...)
负 Lookbehind
密码验证是必需四向处理的一个示例。假定在密码限制中,密码必须介于 4 到 8 个字符,且必须至少包含一个数字。为此,您可以仅在匹配中测试 \d,然后使用字符串操作来测试长度。但要在正则表达式中实现这一切,必须使用 Lookahead。特别是正 lookahead,如下所示:^(?=.*\d).{4,8}$
结论正则表达式是一种描述文本模式的极有效方法,它使文本模式成为字符串验证和操作的极好资源。.NET Framework 通过 System.Text.RegularExpressions 命名空间(特别是其中的 Regex 类)提供了对正则表达式的强大支持。使用 API 很简单,但编写正确的正则表达式通常比较费力。但幸运的是,正则表达式可以重复使用,您可以通过网络中的各种联机资源,从中找出其他人设计的表达式,或者在创建表达式遇到困难时得到帮助。
资源正则表达式讨论列表 ?ReturnUrl=%2fSignUp%2flist.aspx%3fl%3d68%26c%3d16&l=68&c=16
Mastering Regular Expressions (O'Reilly),作者 Jeffrey Friedl
作者简介Steven A. Smith 是 Microsoft 在 ASP.NET 技术方面的最有价值专家 (MVP),是 ASPAlliance.com 和 DevAdvice.com 的总裁和所有者。此外,他也是 ASPSmith Ltd(一家重点提供 .NET 培训的公司)的所有者和首席教师。他撰写了两本著作:“ASP.NET Developer's Cookbook”和“ASP.NET By Example”,并在 MSDN 和 AspNetPRO 杂志上发表了一些文章。Steve 每年都在各种会议上发表演讲,是 INETA 联络处的成员。Steve 拥有企业管理硕士学位及计算机科学工程理学士学位。
您可能感兴趣的文章: