正则表达式从“<”之间删除代码和“>”

时间:2010-10-21 15:57:47

标签: regex asp-classic

我有一个问题,我需要在文件中找到一个字符串,但是当我运行regex.match函数时,它返回“<”之间没有任何文本的字符串和“>”失踪。这是我的代码和返回的字符串

原始字符串 - [$iif{len("Test")>0,<meta name="Author" content="Test">,""}$]

正则表达式 - \[\$[a-zA-Z_0-9\{\}\(\)<>=\|/\."",\s]*\$\]

结果 - [$iif{len("Test")>0,,""}$]

'Visit http://msdn.microsoft.com/en-us/library/ms974570.aspx for explanation on this reg expression 
regex.pattern = "\[\$[a-zA-Z_0-9\{\}\(\)\<\>=\|/\."",\s]*\$\]"

set matches = regex.execute(psTemplateData)

for each m in matches
    response.write m & " index - " & m.FirstIndex  & " " &  m.length & "<br />"
next

有趣的是,匹配的原始字符串的字符串长度正确。提前感谢您的帮助。

瓦德

1 个答案:

答案 0 :(得分:2)

正则表达式看起来很好。我猜你的浏览器会显示[$iif{len("Test")>0,,""}$],因为<meta name="Author" content="Test">部分被解释为HTML并因此消失。

您需要对输出进行编码,以使这些尖括号变为&lt;&gt;。查看Server.HTMLEncode方法。