字符串与正则表达式学习总结

概述:正则表达式通常称为regex,它是一个文本字符串,使用了称为文本模式的特殊格式。正则表达式用来定义匹配或转化字符串的规则,它们是现在可用的最强大的问题维护工具之一。

常用的元字符:

 (1) ^:匹配每一行的开始

 (2)  .:匹配任何一个单字符。

 (3)  *:其之前的字符或表达式将重复0次或多次。

 (4)  *:其之前的字符或表达式将重复1次或多次。(至少出现一次)

 (5)  *:其之前的字符或表达式将重复0次或1次。(可选的)

 (6) {m,n}:其之前的字符或表达式将重复m到n次;m和n都是整数,而且必须小于n

 (7) ():圆括号用来定义一个已捕获的表达式。

 (8) []:用来定义一个字符集;[^]:与[]类似,只不过它匹配的是该范围之外的字符。

 (9) $ :匹配行尾。

 (10)\ :转义其后续的字符。

.NET中正则表达式封装(6个类一个委托)功能:

 (1) 类 - Regex :执行正则表达式操作的类。他可以被实例化,以用来表示正则表达式的已编译实例,或者用来执行相同的操作的静态方法。

 (2) 类 - Capture :表示单次匹配的结果;类 - CaptureCollection :表示Capture对象的结果。

 (3) 类 - Group :用来表示一个捕获组(正则表达式中圆括号中的表达式)的结果,表达形式是CaptureCollection对象;类 - GropuCollection :表示Group对象的集合。

 (4) 类 - Match :表示单个正则表达式匹配的结果。它通过Captures成员提供捕获功能,并返回一个CaptureCollection对象,通过Group成员提供捕获组,它将返回一个GroupCollection对象。  类 - MatchCollection:表示Match对象的集合。

 (5) 委托 - MatchEvaluator :一个委托,可以在执行基于正则表达式的文本替换操作时使用。

分组:用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了

 利用正则表达式实现URL重定向功能:

 

<rewriter>
    <rewrite url="/my-super-product.aspx" to="~/Product.aspx?ProductID=1"/>
    
    <!-- Rewrite department pages -->
    <rewrite url ="^.*-d([0-9]+)/?$" to="~/Catalog.aspx?DepartmentID=$1" processing="stop" />
    <rewrite url ="^.*-d([0-9]+)/page-([0-9]+)/?$" to="~/Catalog.aspx?DepartmentID=$1&Page=$2" processing="stop" />

    <!-- Rewrite category pages -->
    <rewrite url ="^.*-d([0-9]+)/.*-c([0-9]+)/?$" to="~/Catalog.aspx?DepartmentId=$1&CategoryId=$2" processing="stop" />
    <rewrite url ="^.*-d([0-9]+)/.*-c([0-9]+)/page-([0-9]+)/?$" to="~/Catalog.aspx?DepartmentId=$1&CategoryId=$2&Page=$3" processing="stop" />

    <!-- Rewrite product details pages -->
    <rewrite url="^.*-p([0-9]+)/?$" to="~/Product.aspx?ProductId=$1" processing="stop" />
  </rewriter>


以<rewrite url ="^.*-d([0-9]+)/.*-c([0-9]+)/page-([0-9]+)/?$" to="~/Catalog.aspx?DepartmentId=$1&amp;CategoryId=$2&amp;Page=$3" processing="stop" />为例

说明:表达式以^字符开始,用来匹配URL的开头。字符.*用来匹配由0个或多个字符组成的字符串,因为圆点可以匹配任何字符,星号表示之前的字符或表达式将重复0次或多次。接下来-d[0-9]则匹配0到9之间的数字(也就是所有数字),后面跟着+号,表示该模式可以重复1次或多次,也就是可以是多位数字而不一定是以位。将[0-9]+放在圆括号中,表示正则表达式引擎将匹配的字符串保存到名为$1的变量中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值