一简单正则

ZXY900213 2011-06-24 10:45:10
(ASP.NET)
我有一个字符串是js代码:
string a = @"
function b(){
getScript("http://www.aa.com/bb.js");
}";

当然这只是字符串的一部分,
我想把getScript()方法的参数提取出来,也就是http://www.aa.com/bb.js(不要双引),提取之后并且把调用getScript()方法的这句代码(getScript("http://www.aa.com/bb.js"); 这句) 替换成空串。请问正则表达式怎么写?
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZXY900213 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 truecoffeefox 的回复:]

你很有意思,要正则还是要代码?先给你正确的正则才给两份,以后坚决不回答你问题
[/Quote]
大哥,你好像没明白我的需求... 你那个取网址的我当然知道,但是我要的不仅仅是取网址的,而是只取getScript方法参数的网址。而不是整个字符串中所有网址
ZXY900213 2011-06-24
  • 打赏
  • 举报
回复
huangwenquan123 多谢,让我膜拜下...
huangwenquan123 2011-06-24
  • 打赏
  • 举报
回复


string a = @"
function b(){
getScript(""http://www.aa.com/bb.js"");}";
Regex reg = new Regex(@"getScript\((['""])([^'""]+)\1\)\s*;");
Response.Write(reg.Match(a).Groups[2].Value + "<br/>");
Response.Write(reg.Replace(a, ""));

/*
http://www.aa.com/bb.js
function b(){ }

*/
ZXY900213 2011-06-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 porschev 的回复:]
C# code

string result = string.Empty;
string a = "function b(){getScript(\"http://www.aa.com/bb.js\");}";
Regex re = new Regex("(?<=\\\").*?(?=\\\")", RegexOptions.None);
……
[/Quote]

好像不对,也不能替换,那个getScript方法名是不变的
ZXY900213 2011-06-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 porschev 的回复:]
C# code

string result = string.Empty;
string a = "function b(){getScript(\"http://www.aa.com/bb.js\");}";
Regex re = new Regex("(?<=\\\").*?(?=\\\")", RegexOptions.None);
……
[/Quote]
多谢porschev
但是这个表达式把我定义getScript()方法的那段代码匹配到了:
function getScript(src) {

}
能不能排除这个呢?就是判断方法后面的括号里有没有双引或单引...
ZXY900213 2011-06-24
  • 打赏
  • 举报
回复
多谢两位,我先试试...
porschev 2011-06-24
  • 打赏
  • 举报
回复


string result = string.Empty;
string a = "function b(){getScript(\"http://www.aa.com/bb.js\");}";
Regex re = new Regex("(?<=\\\").*?(?=\\\")", RegexOptions.None);
Regex re1 = new Regex("(?<={).*?(?=})", RegexOptions.None);
result = re.Match(a).Value; //这是提取的:http://www.aa.com/bb.js
a = re1.Replace(a, ""); //这是替换后的:function b(){}

truecoffeefox 2011-06-24
  • 打赏
  • 举报
回复
取网址http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
去字符串^getScript\("http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"\);$
truecoffeefox 2011-06-24
  • 打赏
  • 举报
回复
getScript\("http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"\);
ZXY900213 2011-06-24
  • 打赏
  • 举报
回复
自己顶...
ZXY900213 2011-06-24
  • 打赏
  • 举报
回复
沉了...
truecoffeefox 2011-06-24
  • 打赏
  • 举报
回复
你很有意思,要正则还是要代码?先给你正确的正则才给两份,以后坚决不回答你问题

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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