求一正则替换

subendong 2010-02-26 09:18:20
我想实现以下功能:
将"{{{}}}之外的文本替换掉",最后结果为:{{{中国}}}{{{上海}}}{{{北京}}}
请问正则我该怎么写????
<%
Dim strTemp
strTemp = "<P>编者注:{{{中国}}}本文为{{{上海}}}方面{{{北京}}}</P>"

strTemp = ReplaceATag(strTemp)
response.write(strTemp)

Function ReplaceATag(ConStr)
Dim tmpReStr,regEx
tmpReStr = Cstr(ConStr)
Set regEx = New RegExp
regEx.Pattern = "[^{{{}}}]"
regEx.IgnoreCase = True
regEx.Global = True
tmpReStr = regEx.Replace(tmpReStr,"")
ReplaceATag = tmpReStr
Set regEx = Nothing
End Function
%>
...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcwtitxu 2010-02-26
  • 打赏
  • 举报
回复
s = " <P>编者注:{{{中国}}}本文为{{{上海}}}方面{{{北京}}} </P>"
With New RegExp
.Pattern = ".*?(?:(\{{3}(?:(?!\}{3})[\d\D])+\}{3})|$)"
.Global = True
Response.Write .Replace(s, "$1")
End With
subendong 2010-02-26
  • 打赏
  • 举报
回复
我现在又发现一个问题:"</p>"没替换掉。为什么?
subendong 2010-02-26
  • 打赏
  • 举报
回复
我还要问下:
".*?(\{{3}.*?\}{3}).*?"
"\{{3}"是匹配"{{{"
"\}{3}"是匹配"}}}"
这个我看明白了,但".*?"所在的前后位置和{{{}}}里面的位置,代表啥意思??
还有,如果我去掉"?",就只替换一次了,说"?"是什么贪婪,不懂。
subendong 2010-02-26
  • 打赏
  • 举报
回复
测试通过,谢谢1楼的朋友。。
gingerkang 2010-02-26
  • 打赏
  • 举报
回复

<%
s = " <P>编者注:{{{中国}}}本文为{{{上海}}}方面{{{北京}}} </P>"
with new regexp
.Pattern = ".*?(\{{3}.*?\}{3}).*?"
.Global = True
response.write .replace(s,"$1")
end with
%>
subendong 2010-02-26
  • 打赏
  • 举报
回复
5楼写的太高深了,"$1"是什么啊?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧