首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

表示可有可无的正则表达式

2012-02-17 
求一个表示可有可无的正则表达式第一种情况:td onmouseouthide()onMouseOvershow(table width30

求一个表示可有可无的正则表达式
第一种情况:
<td onmouseout="hide();"
onMouseOver="show('<table width=300 class=bg_top1 border=1><tr><td bgcolor=#FFFFFF >test</td></tr></table>');" > 
有变价
</td>

第二种情况:
上面下划线部分是可有可无的,就是说有上面这段html有时候会变成这样:
<td>567</td>


为了适应这两种情况,我写的正则如下:
@"<td[^""]*""*[^""]*""*[^""]*""*[^""]*""*[\s]*>[\s]*(?<Price>.+)[\s]*</td>"


当为第一种情况时可以正常取值,第二种情况<td>567</td>时就取不到,
说明[^""]*""*[^""]*""*[^""]*""*[^""]*""*这段正则不对,
请帮忙指正一下

[解决办法]

C# code
@"(?six)           # (?s)=点号匹配一切字符,(?i)=不区分大小写,(?x)=宽松排列格式  <td\s+           # 开始    (?:            #   下述字符      ""[^""]*""   #     双引号字符串      |            #     或者是 ...      '[^']*'      #     单引号字符串      |            #     或者是 ...      [^""'>]      #     除了双引号、单引号或结束的尖括号(>)外的其他文本    )*             #   重复任意多次  >                # 结束的尖括号(>)  \s*  (?<Price>[\d\.]+) # 内容  \s*                  </td>            # 结束"; 

热点排行