如何用正则表达式截取字符串

qq251833440 2011-09-30 10:39:33
有这么一段字符串:
[aaa]bbb
想分别截取字符串aaa(即中括号里面的字符)和bbb(即括号外面的字符),怎样写正则才能实现?
$str1=aaa
$str2=bbb


答案是这个
$str = '[aaa]bbb';
preg_match('/^\[(.*)\](.*)$/', $str, $matches);

$matches[1] == 'aaa';
$matches[2] == 'bbb';

怎么改写成C#代码
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
haojuntu 2011-09-30
  • 打赏
  • 举报
回复
  string s = "[aaa]bbb";
Regex regex=new Regex("\\[(?<a>\\w+)\\](?<b>\\w+)",RegexOptions.IgnoreCase);

string a = string.Empty;
string b = string.Empty;
Match m = regex.Match(s);
if (m.Success)
{
a = m.Groups["a"].ToString();
b = m.Groups["b"].ToString();
}
huangwenquan123 2011-09-30
  • 打赏
  • 举报
回复
            string str = "[aaa]bbb";
Regex reg = new Regex(@"\[([^\]]+)\](.*)");
Console.WriteLine(reg.Match(str).Groups[1].Value);
Console.WriteLine(reg.Match(str).Groups[2].Value);
  • 打赏
  • 举报
回复

string tempStr = "[aaa]bbb";
string pattern = @"\[([\s\S]*)\]([\s\S]*)";
Regex re = new Regex(pattern);
string str1 = Regex.Replace(tempStr,pattern,"$1");
string str2 = Regex.Replace(tempStr, pattern, "$2");
porschev 2011-09-30
  • 打赏
  • 举报
回复


string str = "[aaa]bbb";

Regex re = new Regex("^\\[(.*)\\](.*)$", RegexOptions.None);
MatchCollection mc = re.Matches(str);
foreach (Match ma in mc)
{
//ma.Groups[1].Value 结果:aaa
//ma.Groups[2].Value; 结果:bbb
}



qq251833440 2011-09-30
  • 打赏
  • 举报
回复
在线等!

62,046

社区成员

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

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

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

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