CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求个正则表达式,有点难,拜托了

楼主gaoranaa()2005-12-05 12:55:42 在 .NET技术 / ASP.NET 提问

<input   type="hidden"   name="idItem1"   value="14">  
  <input   type="hidden"   name="idItem2"   value=16>  
  input   type="hidden"   name="idItem3"   value="带引号的中文">  
  <input   type="hidden"   name="idItem4"   value=不带引号的中文>  
   
   
  用正则取出网页中input的value值,如上所示  
  例如取出的结果是  
   
  14  
  16  
  带引号的中文  
  不带引号的中文  
   
  如果value中只有英文字母和数字,这个我能取出来,但value里面的值是中文的话,这个正则我就不会写了~~望高手指点,拜托了~~  
   
  问题点数:50、回复次数:11Top

1 楼Qqwwee_Com(http://qqwwee.com)回复于 2005-12-05 13:01:03 得分 0

value=["]*(?<value>[^\">]*)["]*  
   
  随便写了一个,可以符合你目前的要求  
  但是不能符合所有的要求。  
   
  #region   广告开始  
   
      CSDN小助手   V2.5,更快、更爽、更方便的浏览CSDN论坛!  
      界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx  
      下载:http://szlawbook.com/csdnv2  
   
  ***  
      我们每回答一个问题,  
      就谋杀了提问者一个思考的机会,  
      而这个思考的机会可能让他获得10倍的知识,  
      所以,我们不下地狱谁下地狱?  
  ***  
   
  #endregionTop

2 楼swordragon(古道热肠)回复于 2005-12-05 13:13:48 得分 5

string   str40   =   "input   type='hidden'   name='idItem'   value=14";  
  Regex   r40   =   new   Regex(@"input[\s\S]*?value=(?<value>[\d]*?)?",RegexOptions.IgnoreCase);Top

3 楼gaoranaa()回复于 2005-12-05 13:41:23 得分 0

swordragon(古道热肠)   的不准确  
  得出的结果是"input   type="hidden"   name="idItem1"   value="啊  
  我要的结果是value里面的值~Top

4 楼sswater(光杆兵)回复于 2005-12-05 14:02:00 得分 0

表达式:  
  <input.+?value=(("|')?)([^>]*)\1.*?>  
   
  测试工具:  
  http://www.regexlab.com/zh/workshop.asp?pat=%3Cinput.%2B%3Fvalue%3D%28%28%22%7C%27%29%3F%29%28%5B%5E%3E%5D*%29%5C1.*%3F%3E&txt=%3Cinput%20type%3D%22hidden%22%20name%3D%22idItem1%22%20value%3D%2214%22%3E%0D%0A%3Cinput%20type%3D%22hidden%22%20name%3D%22idItem2%22%20value%3D%27%u5E26%u5355%u5F15%u53F7%27%3E%0D%0A%3Cinput%20type%3D%22hidden%22%20name%3D%22idItem3%22%20value%3D%22%u5E26%u53CC%u5F15%u53F7%22%3E%0D%0A%3Cinput%20type%3D%22hidden%22%20name%3D%22idItem4%22%20value%3D%u4E0D%u5E26%u5F15%u53F7%3ETop

5 楼sswater(光杆兵)回复于 2005-12-05 14:05:36 得分 0

纠正:中间再写一个了   "?"  
   
  <input.+?value=(("|')?)([^>]*?)\1.*?>Top

6 楼gaoranaa()回复于 2005-12-05 14:54:34 得分 0

Regex   r   =   new   Regex(@"(<input.+?value=(("|')?)([^>]*)\1.*?>)",RegexOptions.IgnoreCase|RegexOptions.Compiled);  
   
  这样不行啊,楼上Top

7 楼sswater(光杆兵)回复于 2005-12-05 14:59:27 得分 0

表达式中的   "\1"   要对第一个括号匹配的"引号"进行引用,如果你在外层又加了一层括号,那么需要用   "\2"   才能表示引用到匹配引号的地方。  
   
  有关于这一点的详细解释,推荐参考正则表达式文档中的   "2.2   反向引用"   章节:  
  http://www.regexlab.com/zh/regref.htm  
   
  使用   "反向引用"   是为了既能匹配单引号,又能匹配双引号。Top

8 楼sswater(光杆兵)回复于 2005-12-05 15:04:54 得分 0

使用   "\1",   "\2"   的方法来反向引用被广泛支持。  
   
  .NET   的正则表达式还支持命名的反向引用,而不是使用括号的序号来引用,这种方法不受外层括号而影响到引用效果。详情请参考   MSDN。Top

9 楼gaoranaa()回复于 2005-12-05 15:17:15 得分 0

能不能用Regex   r   =   new   Regex(@"(<  
  这种方式帮我写呢,你写的那个我套进去出了一堆错误,根本不知道该怎么改啊Top

10 楼sswater(光杆兵)回复于 2005-12-05 18:05:55 得分 45

不是表达式本身的问题,是字符串常量在代码中的书写问题:  
   
  如果用   "@"   开头的字符串,那么,字符串中的   "   在代码中应该写成   ""  
  Regex   r   =   new   Regex(@"<input.+?value=((""|')?)([^>]*)\1.*?>",   RegexOptions.IgnoreCase|RegexOptions.Compiled);  
   
  如果没有   "@"   开头,那么字符串中的   "   在代码中应该写成   \"   ,而   \   应该书写成   \\  
  Regex   r   =   new   Regex("<input.+?value=((\"|')?)([^>]*)\\1.*?>",   RegexOptions.IgnoreCase|RegexOptions.Compiled);  
   
  前面两种写法都是可以的。  
   
  后边的代码:  
   
  String   s   =   "<input   type=\"hidden\"   name=\"idItem1\"   value=\"14\">";  
  Match   m   =   r.Match(s);  
  System.Console.Out.WriteLine(   m.Groups[3]   );  
  Top

11 楼sswater(光杆兵)回复于 2005-12-05 18:09:02 得分 0

字符串中的引号的书写问题。  
   
  因为字符串用引号来标注开始和结束,因此,如果字符串的内容中有引号,这个引号就要特殊表示噻。楼主可能是一时急了,没有注意到。Top

相关问题

  • 200分求一正则表达式(有点难)
  • 巨难正则表达式~~~
  • 较难的正则表达式问题
  • 一个正则表达式,比较难
  • 有点难度的正则表达式:判断是否为正确的成绩!解决结贴!!
  • 求一正则表达式,有点难度:怎么样取出新闻内容里面的图片字符串。
  • 求一正则表达式,有点难度:怎么样取出新闻内容里面的图片字符串。
  • 再求一正则表达式?拜托了。
  • 正则表达式,有点错误,帮忙看看
  • 高难度正则表达式……, 高手请进! 高分招待!

关键词

  • .net
  • 正则表达式
  • 括号
  • 中文
  • csdn
  • iditem
  • 引号
  • 引用
  • cinput
  • 字符串

得分解答快速导航

  • 帖主:gaoranaa
  • swordragon
  • sswater

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo