跪求:
如何获取一个页面的某一个值,网页的源代码如何。我需要获取这个页面的值:631.01,(这个值也是经常变化的)下面红色字体标明;
请问用正则表达式怎么写。如果有其它的能够解析读取的方式。。谢谢!
<tr align="center">
<td bgcolor="#FFFFFF">港币</td>
<td bgcolor="#FFFFFF">81.06</td>
<td bgcolor="#FFFFFF">80.41</td>
<td bgcolor="#FFFFFF">81.37</td>
<td bgcolor="#FFFFFF">81.37</td>
<td bgcolor="#FFFFFF">81.78</td>
<td bgcolor="#FFFFFF">81.78</td>
<td bgcolor="#FFFFFF">2012-09-28</td>
<td bgcolor="#FFFFFF">09:49:39</td>
</tr>
<tr align="center">
<td bgcolor="#FFFFFF">美元</td>
<td bgcolor="#FFFFFF">628.49</td>
<td bgcolor="#FFFFFF">623.45</td>
<td bgcolor="#FFFFFF">631.01</td>
<td bgcolor="#FFFFFF">631.01</td>
<td bgcolor="#FFFFFF">634.1</td>
<td bgcolor="#FFFFFF">634.1</td>
<td bgcolor="#FFFFFF">2012-09-28</td>
<td bgcolor="#FFFFFF">09:49:39</td>
</tr>
大概是这样,.net没得测试,我看你回复了上面的,就仿他的写了,纯手写,你多点功夫测试测试了。^_^
Regex.Replace(string, "美元[\s\S]*?(<td[^<]*?</td>){3}<td[^>]*?>(.*?)</td>", "$2")
美元[\s\S]*?(<td[^<]*?</td>) 这个表达式有值,但加上{3}后就匹配不了。
@panny: 应该是受换行影响了,我用php测试成功了。加了[\s\S]*?清除换行。
<?php header("Content-type: text/html; charset=utf-8"); $str = ' <tr align="center"> <td bgcolor="#FFFFFF">港币</td> <td bgcolor="#FFFFFF">81.06</td> <td bgcolor="#FFFFFF">80.41</td> <td bgcolor="#FFFFFF">81.37</td> <td bgcolor="#FFFFFF">81.37</td> <td bgcolor="#FFFFFF">81.78</td> <td bgcolor="#FFFFFF">81.78</td> <td bgcolor="#FFFFFF">2012-09-28</td> <td bgcolor="#FFFFFF">09:49:39</td> </tr> <tr align="center"> <td bgcolor="#FFFFFF">美元</td> <td bgcolor="#FFFFFF">628.49</td> <td bgcolor="#FFFFFF">623.45</td> <td bgcolor="#FFFFFF">631.01</td> <td bgcolor="#FFFFFF">631.01</td> <td bgcolor="#FFFFFF">634.1</td> <td bgcolor="#FFFFFF">634.1</td> <td bgcolor="#FFFFFF">2012-09-28</td> <td bgcolor="#FFFFFF">09:49:39</td> </tr>'; preg_match('#美元[\s\S]*?(<td[^<]*?</td>[\s\S]*?){3}<td[^>]*?>(.*?)</td>#i',$str,$match); var_dump($match); //End_php
php 用这个函数可以获去 preg_match_all('@<tr align="center"><td bgcolor="#FFFFFF">(.+)<\/td><\/tr>@isU',$value,$data);
Regex.Replace(string, "<td[^<]*</td>", "")
我只需要红色文字的值,你给的读取出来的只是数组。数组数量太多了