<input type="submit" name="CurList:CurTable:_ctl1:Button1" value="Add to Cart" id="CurList_CurTable__ctl1_Button1" class="add" />
Gold 1,000
<br />
<span class="sale">
$24.95
</span>
<input[^>]*?type=""submit""[^>]*?>/s+(?<goldAmend>[^<]*?)<br[^>]*?>/s+<span[^>]*?>/s+(?<price>[^<]*?)</span>
----------------------------
<strong><a href="http://www.test.com/Virtuelle-Gueter/World-of-Warcraft/Deutsche-Server/Aegwynn/1000-WOW-Gold-auf-Aegwynn::593.html?MSsid=htdirbqj1tle1ggu6krnbtoqf3" class="standard_link">1000 WOW Gold auf Aegwynn</a></strong>
</td>
</tr>
<tr>
<td colspan="2">
<p>
Die von Ihnen georderten 1000 Gold auf Aegwynn werden nach Eingang der Zahlung an Ihren Charakter ermittelt. Der Transfer erfolgt per Ingamepost.
</p>
</td>
</tr>
<tr>
<td align="right" class="main" colspan="2">
<strong>
<span style="line-height:200%"> ab 11,71 EUR</span>
</strong>
<strong><a[^>]*?>(?<goldAmend>[^<]*?)</a></strong>/s+</td>/s+</tr>/s+<tr>/s+<td[^>]*?>/s+<p>(?<noget>[^<]*?)</p>/s+</td>/s+</tr>/s+<tr>/s+<td[^>]*?>/s+<strong>/s+<span[^>]*?>(?<priceA>[^<]*?)</span>
------------------------------
MatchCollection mc = Regex.Matches(myStr, @"<td[^>]*?><h3[^>]*?><a[^>]*?>(?<goldAmend>[^<]*?)</a></h3><div[^>]*?></div></td>(?<noget>[^<]*?)<td[^>]*?><del>(?<noget>[^<]*?)</del><span>(?<price>[^<]*?)<", RegexOptions.IgnoreCase);
if (mc.Count > 0)
{
foreach (Match m in mc)
{
string _goldAmend = m.Groups["goldAmend"].Value.ToString().Trim();
}
}
如以下是一个以#的正则替换例子
MatchCollection mc = Regex.Matches(Strsql, @"/w|and|exec|insert|select|delete|update|count|master|truncate|declare|char\(|chr\(|mid\(|/w", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (mc.Count > 0)
{
foreach (Match m in mc)
{
string str1 = m.Groups[0].Value.ToString();
Strsql = Strsql.Replace(str1, "");
}
}
--------------------------
http://www.com.com/reg.aspx?pid=1000&sid=100258
pid=(?<pid>[^&]*)&sid=(?<sid>[^&]*)
取出pid,sid参数值
[?=&](?<key>[^&]*=[^&]*)
可以列出所有的参数列表
--------------------------
贪婪匹配与非贪婪或最小匹配
通过在 '*'、 '+' 或 '?' 限定符后放置 '?',该表达式就从贪婪匹配转为了非贪婪或最小匹配。
如
--txt begin--
<div class="grayline">
<p class="graybttopbg"></p>
<div class="jobs_txt">
<p class="txt_font">深圳市XX有限公司成立于1999年8月,是一家拥有产综合开发经验、专注于城市精品项目开发的专产开发运营企功开发了广庭圳翠半岛、雅建成立深圳豪宅开发、物业管理、高端酒店运营、产业新城多元产业为主体的集团化企业。目前重点经营有铂店墅群综合体及深圳与花园等城市更新项目,已拥有数十家子公司、近市拥有近百万平米土地储备。</p>
<p class="pot2"></p><p class="txt_font1">公司网站:<a href="http://www.www.net.cn" target="_blank">http://www.www.net.cn</a></p>
</div>
</div>
<div class="graybott">
<span><img src="http://img01.51jobcdn.com/im/2009/graybl.gif" align="left"/></span>
<span><img src="http://img01.51jobcdn.com/im/2009/graybr.gif" align="right"/></span>
</div>
</div>
--txt end--
用 <p class="txt_font">(?<companydesc>[\s\S]*)</p> 匹配的话如下
<p class="txt_font">深圳市XX有限公司成立于1999年8月,是一家拥有产综合开发经验、专注于城市精品项目开发的专产开发运营企功开发了广庭圳翠半岛、雅建成立深圳豪宅开发、物业管理、高端酒店运营、产业新城多元产业为主体的集团化企业。目前重点经营有铂店墅群综合体及深圳与花园等城市更新项目,已拥有数十家子公司、近市拥有近百万平米土地储备。</p>
<p class="pot2"></p><p class="txt_font1">公司网站:<a href="http://www.www.net.cn" target="_blank">http://www.www.net.cn</a></p>
用 <p class="txt_font">(?<companydesc>[\s\S]*?)</p> 匹配的话如下
<p class="txt_font">深圳市XX有限公司成立于1999年8月,是一家拥有产综合开发经验、专注于城市精品项目开发的专产开发运营企功开发了广庭圳翠半岛、雅建成立深圳豪宅开发、物业管理、高端酒店运营、产业新城多元产业为主体的集团化企业。目前重点经营有铂店墅群综合体及深圳与花园等城市更新项目,已拥有数十家子公司、近市拥有近百万平米土地储备。</p>
------
从html字符串中提取中文
/// <summary>
/// 取内容中的中文字符
/// </summary>
/// <param name="contents"></param>
/// <param name="length"></param>
/// <returns></returns>
public static string GetChinese(string contents,int length)
{
var str = contents;
try
{
string regex = @"[\u4e00-\u9fa5]|[\(\)\《\》\——\;\,\。\“\”\!\-\:\ ]|[0123456789]";
//这里可能加入其它要替换的字符
str = GetStrByRegx(str, regex).Replace("宋体", "").Replace("楷体", "").Replace("黑体", "");
if (str.Length > length)
{
str = str.Substring(0, length);
}
}
catch (Exception e)
{
Log.Error(e.Message + e.StackTrace);
return "";
}
return str;
}
/// <summary>
/// 从字符串中取出与正则匹配的字符串
/// </summary>
/// <param name="inputStr">源字符串</param>
/// <param name="strPattern">正则表达式 如:/\\d{2,20}/</param>
/// <returns>string</returns>
public static string GetStrByRegx(string inputStr, string strPattern)
{
var retStr = "";
try
{
MatchCollection mc = Regex.Matches(inputStr, strPattern, RegexOptions.IgnoreCase);
if (mc.Count > 0)
{
foreach (Match m in mc)
{
retStr += m.Value;
}
}
}
catch
{
}
return retStr;
}
--- end ---