正则表达式问题

ebb 2009-08-04 10:21:23
<script>aaa('11','22','33');</script>
dafjkdlsjfalsdkfjal;sfkjklaskjasdfja;ldfmlk2urqoijnfdoisv87j2rmnvkldsaiy
<script>aaa('44','55','66','77');</script>

文本是上面那样的
我想单独把类似
<script>aaa('11','22','33');</script>这样的几行取出来,怎么写?

<script>aaa和后面的;</script>是固定的
中间参数数量不定,像第一行就是3个,第三行那个是4个的,这样的我都要取出来
...全文
119 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ebb 2009-08-05
  • 打赏
  • 举报
回复
up
ebb 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lcl_data 的回复:]
里面的参数指的是11,22?
[/Quote]
十八道胡同 2009-08-05
  • 打赏
  • 举报
回复
里面的参数指的是11,22?
ebb 2009-08-05
  • 打赏
  • 举报
回复
<script>aaa('11','22','33'); </script>
<script>aaa('44','55','66','77'); </script>

如果需要匹配里面的参数,怎么写?
-过客- 2009-08-05
  • 打赏
  • 举报
回复
一次性把需求说清楚就是了。。。
目前的需求还是不明确,是一次性取出所有参数就可以了,还是先取出每一组<script>...</script>,再取对应的参数?
不过无论哪一种,都城不需要匹配两次的

//一次性取出所有参数
Regex reg = new Regex(@"(?is)(?<=<script>aaa\('(\d+',')*?)\d+(?=(?:','\d+)*'\);\s*</script>)");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
//输出
11
22
33
44
55
66
77


//先取标签,再取对应参数
Regex reg = new Regex(@"(?is)<script>aaa\((?:'(\d+)',?)+\);\s*</script>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
foreach (Capture c in m.Groups[1].Captures)
{
richTextBox2.Text += c.Value + "\n";
}
richTextBox2.Text += "---------------\n";
}
//输出
<script>aaa('11','22','33'); </script>
11
22
33
---------------
<script>aaa('44','55','66','77'); </script>
44
55
66
77
---------------
lovvver 2009-08-05
  • 打赏
  • 举报
回复
string pattern = "<script>(?<info>.*)</script>";
通过上面的正则匹配出javascript脚本部分内容
string pattern = "\((?<info>.*)\)";
再用上面这句来匹配script脚本的方法参数
最后再用string pattern = "\'(?<info>.*)\'";来匹配每一个参数
十八道胡同 2009-08-04
  • 打赏
  • 举报
回复
就是取<script></script>之间的。

Regex reg = new Regex(@"(?is)<script>(?:(?!</?script\b).)*</script>");
-过客- 2009-08-04
  • 打赏
  • 举报
回复
try...

Regex reg = new Regex(@"(?is)<script>aaa(?:(?!</?script\b).)*</script>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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