求个正则,谢谢

chenwei175528 2012-04-27 03:07:16
abc空12.34aaa空bbb

其中abc为固定值
空代表若干个空格
12.34为小数(钱)
aaa为变化
bbb为固定值

多谢~~
...全文
86 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenwei175528 2012-04-27
  • 打赏
  • 举报
回复
搞定了 多谢各位
EnForGrass 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

private string _REG = @"(特价:\s*<span id=""priceCell"">¥\d*</span><em id=""isshowSpecialInfo""></em></div>\s*<div class=""detail_r1vip"">VIP价)";

string text = @"特价: <span id=""priceCell"">¥11.2……
[/Quote]

你可以改成\d+(\.\d+)?
EnForGrass 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

private string _REG = @"(特价:\s*<span id=""priceCell"">¥\d*</span><em id=""isshowSpecialInfo""></em></div>\s*<div class=""detail_r1vip"">VIP价)";

string text = @"特价: <span id=""priceCell"">¥11.2……
[/Quote]
11.23有小数点,你用\d*只能匹配到数字
chenwei175528 2012-04-27
  • 打赏
  • 举报
回复
private string _REG = @"(特价:\s*<span id=""priceCell"">¥\d*</span><em id=""isshowSpecialInfo""></em></div>\s*<div class=""detail_r1vip"">VIP价)";

string text = @"特价: <span id=""priceCell"">¥11.23</span><em id=""isshowSpecialInfo""></em></div>
<div class=""detail_r1vip"">VIP价";

上面的是我写的正则
下面的是我想匹配的字符串
最终想把11.23拿出来

为什么这个匹配不了?
porschev 2012-04-27
  • 打赏
  • 举报
回复


//验证用
Regex re = new Regex(@"^abc\s+\d+(\.\d+)[^\s]+\s+bbb$", RegexOptions.None);

if (re.IsMatch("你要验证的字符串"))
{
//符合
}
else
{
//不符合
}

//提取用
string str = "abc 12.34aaa bbb";
Regex re = new Regex(@"abc\s+((\d+(\.\d+)?)([^\s]+))\s+bbb", RegexOptions.None);
Match ma = re.Match(str);
//ma.Groups[0].Value; 结果:abc 12.34aaa bbb
//ma.Groups[1].Value; 结果:12.34aaa
//ma.Groups[2].Value; 结果:12.34
//ma.Groups[4].Value; 结果:aaa


EnForGrass 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

^abc\s+\d+(.\d+)?\S*\s+bbb$
[/Quote]
改一下,少些一个\
^abc\s+\d+(\.\d+)?\S*\s+bbb$
EnForGrass 2012-04-27
  • 打赏
  • 举报
回复
^abc\s+\d+(.\d+)?\S*\s+bbb$
dalmeeme 2012-04-27
  • 打赏
  • 举报
回复
^abc\s+\d+(?=\.\d+)?\S+\s+bbb$
rayyu1989 2012-04-27
  • 打赏
  • 举报
回复
aaa 如果是特定的字符组成 最好把 .*? 改成贪婪模式
coregao0220 2012-04-27
  • 打赏
  • 举报
回复
abc[ ]*\d+\.\d+[a-zA-Z]*[ ]*[a-zA-Z]*
rayyu1989 2012-04-27
  • 打赏
  • 举报
回复
abc[ ]*[\d]+(\.[\d]+)?.*?bbb
threenewbee 2012-04-27
  • 打赏
  • 举报
回复
^abc\s+\d+\.{0,1}\d+?\w\sbbb$
正则表达式善于处理文本,对匹配、搜索和替换等操作都有意想不到的作用。正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率。 正则表达式应用于程序设计语言中,首次是出现在 Perl 语言,这也让 Perl 奠定了正则表达式旗手的地位。现在,它已经深入到了所有的程序设计语言中,在程序设计语言中,正则表达式可以说是标准配置了。 Java 中从 JDK 1.4 开始增加了对正则表达式的支持,至此正则表达式成为了 Java 中的基本类库,使用时不需要再导入第三方的类库了。Java 正则表达式的语法来源于象征着正则表达式标准的 Perl 语言,但也不是完全相同的,具体的可以参看 Pattern 类的 API 文档说明。 我在一次偶然中发现了位于 java.sun.com 站点上的 Java Tutorial,也在那里看到了关于 Java 的正则表达式教程,感觉它不同于其他的正则表达式教程,文中以大量的匹配实例来进行说明。为了能让 Java 学习者能更好地使用正则表达式,就将其完整地译出了。该教程中所介绍的正则表达式应用仅仅是最为简单的(并没有完全地涉及到 Pattern 类支持的所有正则表达式语法,也没有涉及到高级的应用),适合于从未接触过或者是尚未完全明白正则表达式基础的学习者。在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以直接编译运行。由于当前版本的 Java Tutorial 是基于 JDK 6.0 的,因此其中的示例程序也用到了 JDK 6.0 中的新增类库,但正则表达式在 JDK 1.4 就已经存在了,为了方便大家使用,改写了部分的源代码,源代码类名中后缀为"V4"的表示用于 JDK 1.4 或以上版本,"V5"的表示用于 JDK 5.0 或以上版本,没有这些后缀的类在各个版本中均可以正常使用。 由于译者的水平和技术能力有限,译稿虽经多次校对,难免有疏漏之处,敬请大家批评和指正。若有发现不妥之处,请发送邮件至 FrankieGao123@gmail.com,我会在 blog 中进行勘误,谢谢

62,046

社区成员

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

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

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

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