各位兄弟,请帮忙解决用正则表达式提取字符串内容(急用)

eatsun 2007-08-29 09:34:29
有如下格式的字符串:
AAAAAAA= [ntss3 ]\nBBBBBBB\t\t\t\t\t= [20020425104835]\nCCCCCCCC\t\t\t\t= [TESTSERV]\nDDDDDDD\t\t\t\t= [SVPORT]\nEEEEEEE\t\t\t\t\t= [1234567]\n

请大家帮忙提供1个提取字符 “[”和“]”之间的字符,并拼成1个新的字符串
的正则表达式。

急用,这里先谢过了。
...全文
317 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2007-08-30
  • 打赏
  • 举报
回复
如果字符串数据量不是很大,最简单的就是用这种方式

string test = "AAAAAAA= [ntss3 ]\nBBBBBBB\t\t\t\t\t= [20020425104835]\nCCCCCCCC\t\t\t\t= [TESTSERV]\nDDDDDDD\t\t\t\t= [SVPORT]\nEEEEEEE\t\t\t\t\t= [1234567]\n";
string result = Regex.Replace(test, @"^[^\[\]]*\[|\][^\[\]]*\[|\][^\[\]]*$", "");


如果数据量很大,可以用sbqcel(空空儿)的方法,不过是好是用StringBuilder,也可以用下面委托的方法


string test = "AAAAAAA= [ntss3 ]\nBBBBBBB\t\t\t\t\t= [20020425104835]\nCCCCCCCC\t\t\t\t= [TESTSERV]\nDDDDDDD\t\t\t\t= [SVPORT]\nEEEEEEE\t\t\t\t\t= [1234567]\n";
sb = new StringBuilder();
test = Regex.Replace(test, @"(?<=\[)[^\[\]]*(?=\])", new MatchEvaluator(regReplace));
string result = sb.ToString();



StringBuilder sb;
private string regReplace(Match m)
{
sb.Append(m.Value);
return string.Empty;
}


sbqcel 2007-08-29
  • 打赏
  • 举报
回复
输出:ntss3 20020425104835TESTSERVSVPORT1234567
sbqcel 2007-08-29
  • 打赏
  • 举报
回复
string strInput = @"AAAAAAA= [ntss3 ]\nBBBBBBB\t\t\t\t\t= [20020425104835]\nCCCCCCCC\t\t\t\t= [TESTSERV]\nDDDDDDD\t\t\t\t= [SVPORT]\nEEEEEEE\t\t\t\t\t= [1234567]\n"; //.+\[^\.][a-zA-Z0-9]+\.txt$
string strReg = @"\[(?<s>[^\]]*)\]";
string strResult = string.Empty;
MatchCollection matchCollection = Regex.Matches( strInput , strReg , RegexOptions.Multiline );
foreach( Match ma in matchCollection )
{
strResult += ma.Groups["s"];
}
Response.Write( strResult );
gui0605 2007-08-29
  • 打赏
  • 举报
回复
拼成新的字符串是什么样子的?

110,525

社区成员

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

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

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