<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里面的值是中文的话,这个正则我就不会写了~~望高手指点,拜托了~~
<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里面的值是中文的话,这个正则我就不会写了~~望高手指点,拜托了~~
但是不能符合所有的要求。#region 广告开始 CSDN小助手 V2.5,更快、更爽、更方便的浏览CSDN论坛!
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2***
我们每回答一个问题,
就谋杀了提问者一个思考的机会,
而这个思考的机会可能让他获得10倍的知识,
所以,我们不下地狱谁下地狱?
***#endregion
Regex r40 = new Regex(@"input[\s\S]*?value=(?<value>[\d]*?)?",RegexOptions.IgnoreCase);
得出的结果是"input type="hidden" name="idItem1" value="啊
我要的结果是value里面的值~
<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%3E
http://www.regexlab.com/zh/regref.htm使用 "反向引用" 是为了既能匹配单引号,又能匹配双引号。
这种方式帮我写呢,你写的那个我套进去出了一堆错误,根本不知道该怎么改啊
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] );