求一个正则的写法

xiaozhang1528008 2012-05-04 10:38:54
想匹配出规则如:3.68-9.65这种的格式(就是小数点后面有2位,中间有个-)

然后可以取出3.68和9.65这2个数。
我这样写为什么不行呢?
Regex reg1 = new Regex(@"(?i)<li\stype=(['""]?)NO\1[^>]*>(\d+)(\3)?\s*-\s*(\d+)\3?</li>");
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xudlQQ123 2012-05-04
  • 打赏
  • 举报
回复
^/d+/./d{2}-/d+/./d{2}$
这个正确的.
huangwenquan123 2012-05-04
  • 打赏
  • 举报
回复

string str = @"<li type=""NO"">3.68-9.65</li><li type=""NO"">1.11 - 2.22</li><li type=""NO"">a.bb-c.dd</li>";
Regex reg = new Regex(@"(?is)<li\stype=(['""\s]?)NO\1[^>]*?>(\d+\.\d{2})\s*-\s*(\d+\.\d{2})</li>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[2].Value + "=====" + m.Groups[3].Value);
/*
3.68=====9.65
1.11=====2.22

*/
shnaying1945 2012-05-04
  • 打赏
  • 举报
回复
^/d+/./d{2}-/d+/./d{2}$
s是空格之类的吧
取出的时候你可以按字符串查找,找到-,然后截取前面的和后面的。
正则表达式偶刚上路,具体的你自己试试啊
bdmh 2012-05-04
  • 打赏
  • 举报
回复

string source = "a3.68-9.65gd";
Regex reg = new Regex(@"(?is)(?<value1>\d+.[\d]{2})-(?<value2>\d+.[\d]{2})");
MatchCollection mc = reg.Matches(source);
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
MessageBox.Show(m.Groups["value1"].Value);
MessageBox.Show(m.Groups["value2"].Value);
}

62,074

社区成员

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

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

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

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