正则规则进一步

  
 ?在正则匹配表达式中表示匹配0-1次(作为匹配度)

 ?在正则中限定匹配度的匹配规则(即在匹配度符号之后)则表示lazy的含义——即懒惰匹配
       有5中常用简单懒惰   ??(可以匹配0,1次,但最好是0次),*?(可以匹配任意次,但最好匹配0次),
					+?(可以匹配1到n次,但最好匹配最开始的那1次
				      ,{n}?(可以匹配n次,最好就匹配最开始的前n次),{n,m}?(可以匹配n到m次,但最好只匹配最开始的前n次
  ?和| 表示if ...else...      (?(expression)yes-expression|no-expression),其中no-expression为可选项
   					(?(group-name)yes-expressioin|no-expression),其中no-expression为可选项

(?(A)A|B)不能匹配"AA",为什么呢?

.NET 正则表达式引擎尽可能的匹配多的字符(贪婪)。正是由于这一点,所以,不要用@"<.*>(.*)</.*>"这样的正则式来试图找出一个HTML文档中的所有innerText,而应当消除默认的贪婪改为懒惰匹配。<.+>.*?</\1>

.NET Framework 正则表达式引擎是回溯的正则表达式匹配器,它并入了传统的非确定性有限自动机 (NFA) 引擎(例如 Perl、Python使用的引擎)。这使其有别于更快的、但功能更有限的纯正则表达式确定性有限自动机 (DFA) 引擎。.NET Framework 正则表达式引擎尽量匹配成功,所以,当@"\w+\.(.*)\.\w+"中的.*把www. .csdn.net中的.csdn.net都匹配完了,让后面的\.\w+没得字符去匹配时,引擎会进行回溯,以得到成功的匹配。

"(;7-9)|(;([^>]*)[^;]*(?=7-9))?"
;1-2>1-3>1-4;7-6>7-7>7-8>7-9

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值