首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

怎么用正则表达式匹配这样的字符串

2013-06-25 
如何用正则表达式匹配这样的字符串%sData开头!-- Begin --!-- Begin --!-- /End --!-- Begin --

如何用正则表达式匹配这样的字符串


<%
sData="开头<!-- Begin --><!-- Begin --><!-- /End --><!-- Begin -->This is a content from X to Y.<!-- /End -->"

response.write "<div>"&Server.Htmlencode(sData)&"</div>"

Dim objRegExp,MyPattern,MatCount
Dim NewString
Set objRegExp=New RegExp'创建对象
objRegExp.IgnoreCase=True'是否忽略大小写 True False
objRegExp.Global=True'字符串中全局匹配 True False
objRegExp.MultiLine = False'是否多行 True False

MyPattern="<!-- Begin -->([^(Begin)]*)<!-- /End -->"
objRegExp.Pattern=MyPattern'正则表达式模式

Set MyMatches=objRegExp.Execute(sData)
MatCount=MyMatches.Count
response.write "<div>匹配到个数=["&MatCount&"]</div>"
For Each MyMatch In MyMatches
response.write "<div>项目["&Server.Htmlencode(MyMatch)&"]</div>"
Next

response.write "<hr/>"

sData=objRegExp.Replace(sData,"【被替换了】")

response.write "<div>"&Server.Htmlencode(sData)&"</div>"

%>



我想匹配<!-- Begin -->到<!-- /End -->之间的内容(内容不允许包含<!-- Begin-->)。 看原字符串,照理说是可以匹配出2个结果。
但是正则表达式中因为多了个^begin 所以后面那个匹配不到,被过滤了。
我的意图是想 过滤 含有(begin) 整个单词的字符串,而不是单个单词b,e,g,i,n

请问怎么改写正则表达式:
MyPattern="<!-- Begin -->([^(Begin)]*)<!-- /End -->"

用()括号括起来了,还是没用。奇怪。要怎么写?



[解决办法]
 MyPattern="(\<\!\-\- Begin \-\-\>)(.*?)(<!-- /End -->)"
sData=objRegExp.Replace(sData,"$1[被替换了]$3")
直接这样不就好了么?
[解决办法]
sData="开头<!-- Begin --><!-- Begin --><!-- /End --><!-- Begin -->This is a content from X to Y.<!-- /End -->"

response.write "<div>"&Server.Htmlencode(sData)&"</div>"

Dim objRegExp,MyPattern,MatCount
Dim NewString
Set objRegExp=New RegExp    '创建对象
objRegExp.IgnoreCase=True    '是否忽略大小写 True False
objRegExp.Global=True        '字符串中全局匹配 True False
objRegExp.MultiLine = False    '是否多行 True False

MyPattern="<!-- Begin -->((?:(?!<!-- Begin -->)[\d\D])*)<!-- /End -->"
objRegExp.Pattern=MyPattern        '正则表达式模式

Set MyMatches=objRegExp.Execute(sData)
MatCount=MyMatches.Count
response.write "<div>匹配到个数=["&MatCount&"]</div>"
For Each MyMatch In MyMatches
    response.write "<div>项目["&Server.Htmlencode(MyMatch)&"]</div>"
Next

response.write "<hr/>"

sData=objRegExp.Replace(sData,"【被替换了】")



response.write "<div>"&Server.Htmlencode(sData)&"</div>"

热点排行