在线求救,求一正则表达式,很简单的。

sra 2005-08-03 04:53:11
有一段代码,比如:

wefawelfawj[xxxxxx]f efawfi jawe;ofj awoief awe
awfef[xxx]
awe aw
f we[xxxxxxxxxxxxxxx]fwaefaef

我要取出"[]"里面的东西。
...全文
204 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sra 2005-08-03
  • 打赏
  • 举报
回复
刚才又测试了一下 pontus(pontus)的 \[[^\]]*?\],也会捕获到 "[]"。

所以最符合要求的是:

xiahouwen @"\w*\[(?<content>[\w\.]*)\]\w*"



fancyf(凡瑞) @"\[(?<content>[^]]*)\]"
sra 2005-08-03
  • 打赏
  • 举报
回复
@"\[(?<content>[^]]*)\]"

测试通过! 谢谢fancyf(凡瑞)指点。
fanruinet 2005-08-03
  • 打赏
  • 举报
回复

@"\[(?<content>[^]]*)\]"

然后再用xiahouwen的代码就行了
sra 2005-08-03
  • 打赏
  • 举报
回复
fancyf(凡瑞)的方法包括了"[]",但这个我没有打算捕获出来。
sra 2005-08-03
  • 打赏
  • 举报
回复
啊! 没看到,Regex r = new Regex(@"\w*\[(?<content>[\w\.]*)\]\w*"); 这个方法可行,我测试成功了。呵呵!

谢谢各位的指点,结贴。
fanruinet 2005-08-03
  • 打赏
  • 举报
回复
如果允许[]之间有任何字符的话应该用
@"\[[^]]*\]"
活靶子哥哥 2005-08-03
  • 打赏
  • 举报
回复
你没有看到我第4次回的帖子么?
我测试过了,可以捕捉到"." 的,xx...x7x.xx这样的没有问题。
Regex r = new Regex(@"\w*\[(?<content>[\w\.]*)\]\w*");
Match m = r.Match("we[f]awelfawj[xx...x7x.xx]f efa[xsdfsdfx7xxx] jawe;ofj awoie[sdf4445a]we");
sra 2005-08-03
  • 打赏
  • 举报
回复
pontus(pontus)恭喜你中奖,你的表达式通过了。

大家鼓掌啊!~~~~
sra 2005-08-03
  • 打赏
  • 举报
回复
呵呵,这段代码仍然不能捕获到带"."的字符串,不过辛苦你了。
活靶子哥哥 2005-08-03
  • 打赏
  • 举报
回复
带"."的在表达式内加上"."就可以了
下面的代码经过测试
Regex r = new Regex(@"\w*\[(?<content>[\w\.]*)\]\w*");
其他的如空格回车换行等都可以按照这样加到表达式内


Regex r = new Regex(@"\w*\[(?<content>[\w\.]*)\]\w*");
Match m = r.Match("we[f]awelfawj[xx.x7xxx]f efa[xsdfsdfx7xxx] jawe;ofj awoie[sdf4445a]we");
while (m.Success)
{
for (int i = 1; i <= m.Groups.Count; i++)
{
Group g = m.Groups[i];
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
Response.Write("捕获到----'" + c + "', 起始位置="+c.Index + "<br/>");
}
}
m = m.NextMatch();
活靶子哥哥 2005-08-03
  • 打赏
  • 举报
回复
请测试如下代码,我测试过 正常运行,可以得到你想要的结果,
如果还有不合适的地方请短消息我,明天见
<%@Page Language="c#" Debug="true"%>
<%@ Import Namespace="System.Configuration" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="gb2312" lang="gb2312">
<head>
<title> New Document </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="title" content="" />
<meta name="author" content="活靶子,Huobazi,www.AspxBoy.com" />
<meta name="subject" content="" />
<meta name="language" content="gb2312" />
<meta name="keywords" content="" />
<meta name="Copyright" content="www.AspxBoy.com" />
<meta name="robots" content="all" />

<script langauge="c#" runat="server">

void Page_Load(object o , EventArgs e)
{
if(!Page.IsPostBack)
{
//Response.Write(Server.UrlEncode("金"));
Regex r = new Regex(@"\w*\[(?<content>\w*)\]\w*");
Match m = r.Match("we[f]awelfawj[xxx7xxx]f efa[xsdfsdfx7xxx] jawe;ofj awoie[sdf4445a]we");
while (m.Success)
{
for (int i = 1; i <= m.Groups.Count; i++)
{
Group g = m.Groups[i];
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
Response.Write("捕获到----'" + c + "', 起始位置="+c.Index + "<br/>");
}
}
m = m.NextMatch();
}
}
}

</script>
</head>
<body>
<form id="frm" runat="server">



</form>
</body>
</html>
sra 2005-08-03
  • 打赏
  • 举报
回复
string myMemo=nMemo.Text;
Regex r = new Regex(@"\w*\[(?<content>\w*)\]\w*");
Match m;
for(m = r.Match(myMemo); m.Success; m = m.NextMatch())
{
string content = m.Groups["content"].Value;
Response.Write(content);
}

这样已经可以找到了,但不能在字符里加"."。请在改一改表达式吧。谢谢!:)
mathsword 2005-08-03
  • 打赏
  • 举报
回复
^[^\[\]]*\[([^\[\]]*)\][^\[\]]*
pontus 2005-08-03
  • 打赏
  • 举报
回复
string str = @"wefawelfawj[xxxxxx]f efawfi ja[we;of]j awoief awe";

Regex re = new Regex(@"\[([^\]]*?)\]",RegexOptions.Singleline);

MatchCollection mc = re.Matches(str);

for(int i=0 ;i<mc.Count ;i++)
{
Response.Write(mc[i].Value.ToString().Trim('[',']'));
}
eyych 2005-08-03
  • 打赏
  • 举报
回复
up
活靶子哥哥 2005-08-03
  • 打赏
  • 举报
回复
上面代码我测试过的,
多个[]那就需要循环遍历每个匹配获得
sra 2005-08-03
  • 打赏
  • 举报
回复
在说一下,[]里的内容有"."和"_",这个有关系吗?
sra 2005-08-03
  • 打赏
  • 举报
回复
xiahouwen(活靶子.NET) ,你的方法得不出来结果。
m.Success 直接跳出判断了。
而且我要的是一组数据,会有多个"[]"内容。
pontus 2005-08-03
  • 打赏
  • 举报
回复
\[[^\]]*?\]
iperfect 2005-08-03
  • 打赏
  • 举报
回复
表达式:@"\w*\[(?<content>\w*)\]\w*"

星星果然是高手,佩服!!!
加载更多回复(3)

62,244

社区成员

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

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

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

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