vbs的正则,太久没用忘光了

灬上海爽爷 2012-01-31 04:36:45
现要替换form action里的内容,要求相对路径改绝对路径,绝对路径也要改另一个域名
假设

content="<form action=""?action=1""></form><form action=""test.asp""></form><form action=""/test.asp""></form><form action=""../test.asp""></form><form action=""http://www.xxx.net.cn/test.asp""></form>"

'共5种情况,现要求替换成如下这种
content="<form action=""http://www.xxx.org.cn/?action=1""></form><form action=""http://www.xxx.org.cn/test.asp""></form><form action=""http://www.xxx.org.cn/test.asp""></form><form action=""http://www.xxx.org.cn/../test.asp""></form><form action=""http://www.xxx.org.cn""></form>"


求高手帮写个正则
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
daols 2012-02-01
  • 打赏
  • 举报
回复
额...上边那个Private Function xTest(exp,str)段没用上可以去掉...

还有js最后一行改成:
x[i].setAttribute('action', 'http://www.xxx.org.cn/'+x[i].getAttribute('action').replace(/^\//gi, ''));
daols 2012-02-01
  • 打赏
  • 举报
回复
content="<form action=""?action=1""></form><form action=""test.asp""></form><form action=""/test.asp""></form><form action=""../test.asp""></form><form action=""http://www.xxx.net.cn/test.asp""></form>"
'共5种情况,现要求替换成如下这种
'content="<form action=""http://www.xxx.org.cn/?action=1""></form><form action=""http://www.xxx.org.cn/test.asp""></form><form action=""http://www.xxx.org.cn/test.asp""></form><form action=""http://www.xxx.org.cn/../test.asp""></form><form action=""http://www.xxx.org.cn""></form>"

' 本人测试成功( 环境win2003sp2, WSH-5.6 ), 执行了三次替换:
'1. 替换 http:// 开头的:
content=xReplace(content, "action=""http:\/\/.*?""", "action=""http://www.xxx.org.cn""")
'2. 替换非 http:// 开头的:
content=xReplace(content, "action=""((?!http:\/\/).*?)""", "action=""http://www.xxx.org.cn/$1""")
'3. 修复路径中的双斜杠 ( //test ) 字符:
content=xReplace(content, "action=""http:\/\/(.*?)\/\/", "action=""http://$1/")

msgbox content

Private Function xReplace(txt,exp,str)
set regex=new regexp
regex.pattern=exp
regex.ignorecase=true
'regex.MultiLine = false '低版本WSH不兼容此选项
regex.global=true
xReplace=regex.Replace(txt,str)
End Function

Private Function xTest(exp,str)
set regex=new regexp
regex.pattern=exp
regex.ignorecase=true
'regex.MultiLine = false '低版本WSH不兼容此选项
regex.global=true
xTest=regex.test(str)
End Function


另:
如果只是要达到这样的htm代码运行效果, 可以用js直接在DOM结构中修改代码而不用直接改脚本文件内容, 这样能兼容更多的浏览器, 类似:
var x=document.forms;
for (var i=0;i<x.length;i++){
if (/^http/.test(x[i].getAttribute('action'))) {x[i].setAttribute('action', 'http://www.xxx.org.cn');} else {
x[i].setAttribute('action', 'http://www.xxx.org.cn/'+x[i].getAttribute('action'));
}
}

灬上海爽爷 2012-02-01
  • 打赏
  • 举报
回复
嗯,自己解决了,当散分吧。
叶子 2012-01-31
  • 打赏
  • 举报
回复
'貌似替换一下就满足前4条
content=Replace(content,"action=""","action=""http://www.xxx.org.cn/"))
叶子 2012-01-31
  • 打赏
  • 举报
回复

'1
<form action=""?action=1"">
变成
<form action=""http://www.xxx.org.cn/?action=1"">
'2
<form action=""test.asp""></form>
变成
<form action=""http://www.xxx.org.cn/test.asp""></form>
'3
<form action=""/test.asp"">
变成
<form action=""http://www.xxx.org.cn/test.asp""></form>
'4
<form action=""../test.asp""></form>
变成
<form action=""http://www.xxx.org.cn/../test.asp""></form>
'5
<form action=""http://www.xxx.net.cn/test.asp""></form>
变成
<form action=""http://www.xxx.org.cn""></form>

最后一个把网站都改了??
daols 2012-01-31
  • 打赏
  • 举报
回复
http://www.xxx.org.cn/../test.asp
这个地址应该不存在吧...

还有最后那个<form action=""http://www.xxx.org.cn"">
不用加test.asp么??

看不懂楼主的意思...
内容概要:本文围绕“空地多无人平台协同路径规划技术”的论文复现展开,重点介绍了基于Matlab的多无人机与地面无人平台协同路径规划的算法实现与仿真研究。研究系统性地整合了无人机三维路径规划、动态避障、多机协同、任务分配及防撞机制等核心技术,结合智能优化算法(如遗传算法、粒子群算法、灰狼优化算法等)与经典路径规划模型(如Dubins路径、A*、RRT等),在复杂威胁环境下实现了高效、安全的协同路径规划。文中提供了完整的Matlab代码支持,便于科研人员进行算法验证、性能对比与二次开发,并强调通过复现高水平学术论文(如EI、SCI期刊及硕博论文)深入掌握该领域的前沿方法与技术路线。; 适合人群:具备一定Matlab编程基础,从事无人机系统、自动化控制、人工智能、路径规划等相关领域研究的研究生、科研人员及工程技术人员,尤其适用于正在开展科研项目、撰写学位论文或希望提升算法实践能力的研究者。; 使用场景及目标:① 复现并深入理解空地协同路径规划领域的高水平论文算法;② 掌握Matlab在多智能体路径规划中的建模、仿真与可视化方法;③ 应用于科研课题、毕业设计、项目申报及算法创新实践中,提升研究的技术深度与工程可行性。; 阅读建议:建议结合文中提供的网盘资源(含完整代码、仿真模型及参考文献资料)同步学习,优先选择与自身研究方向契合的案例进行复现,注重算法原理与代码实现之间的映射关系,并在掌握基础方案后尝试进行参数调优、算法融合或引入新约束条件以实现改进与创新。

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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