求正则表达式.

zhilong 2009-06-01 07:48:53
字符串 [1]-[2]
数字内容不定.位数不定.高手帮我写个正则表达式.谢谢.
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2009-06-01
  • 打赏
  • 举报
回复
什么目的,验证还是提取?

//验证
^\[\d+\]-\[\d+\]$
//提取
\[\d+\]-\[\d+\]
rainsome 2009-06-01
  • 打赏
  • 举报
回复

string testStr = @"[12]-[34]";
Regex objRegex = new Regex(@"^\[(\d+)\]\-\[\d+\]$");
Match objMatch = objRegex.Match(testStr);
if (objMatch.Success) {
//objMatch.Groups[1].Value 这就是需要的
}


[Quote=引用楼主 zhilong 的帖子:]
字符串 [1]-[2]
数字内容不定.位数不定.高手帮我写个正则表达式.谢谢.
[/Quote]
SQL77 2009-06-01
  • 打赏
  • 举报
回复

MatchCollection mc = Regex.Matches(src, @"[\d+]-[\d+]");
foreach(Matche m in mc)
{
Console.WriteLine(m.value);

}


这样试试??新手也不是很懂
zhilong 2009-06-01
  • 打赏
  • 举报
回复
还有一个问题.如何提取第一个\d 的数值?
SQL77 2009-06-01
  • 打赏
  • 举报
回复
Match match = Regex.Match(str2, @"\[\d+]-\[\d+]"); 
SQL77 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhilong 的回复:]
Match match = Regex.Match(str2, @"\[\d+\]-\[\d+\]");
程序不给执行呢?
[/Quote]
Match match = Regex.Match(str2, @"[\d+\]-[\d+\]"); 

外面加了@就不用\转义了!
zhilong 2009-06-01
  • 打赏
  • 举报
回复
Match match = Regex.Match(str2, @"\[\d+\]-\[\d+\]");
程序不给执行呢?
SQL77 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhilong 的回复:]
验证跟提取什么区别啊?
[/Quote]
验证是为匹配!!
@"[\d{1,}]-[\d{1,}]"
zhilong 2009-06-01
  • 打赏
  • 举报
回复
验证跟提取什么区别啊?

110,566

社区成员

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

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

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