求一个表示可有可无的正则表达式
第一种情况:
<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> # 结束
";