C#正則マッチング、グループ化、置換
2310 ワード
2つの例でプレゼンテーションしましょう
1、WebServiceを引用する項目があります.何台かのサーバーに同時に送信されているので、切り替えを容易にするために、そのIPを動的に変更することができます(IPが違うだけで、WebServiceが違うわけではありません).だから、その中のサーバーアドレス部分を置き換えるだけでいいです.
2,クエリー文字列から所望の資料を抽出し,aspのようなウェブページに復元する.Netのviewstate機能
結果:
http://88.88.88.88:1000/ws/services/n_ophospitaldoctorservice?wsdl2010-10-102010-11-10
MatchEvealuatorについては、他の簡単な書き方があります.この文書を参照してください.
1、WebServiceを引用する項目があります.何台かのサーバーに同時に送信されているので、切り替えを容易にするために、そのIPを動的に変更することができます(IPが違うだけで、WebServiceが違うわけではありません).だから、その中のサーバーアドレス部分を置き換えるだけでいいです.
2,クエリー文字列から所望の資料を抽出し,aspのようなウェブページに復元する.Netのviewstate機能
private string testrex(Match m)
{
// 0, ,
return m.Groups[1] + "/88.88.88.88:1000" + m.Groups[3];
}
protected void regexTest()
{
//
string s = "http://221.221.221.221:8180/ws/services/n_ophospitaldoctorservice?wsdl";
// IP 88.88.88.88:1000
Regex rx = new Regex(@"(https?:/)(/[^/]+)(/.*)");
MatchEvaluator me = new MatchEvaluator(testrex);
//s = rx.Replace(s, me);// 1,
s = rx.Replace(s, "$1/88.88.88.88:1000$3"); // 2,
// 88.88.88.88:1000 , http:// (http:/) (/221.232.137...),
// , (https?://) , rx.Replace(s,"$188.88.88.88:100$3"), ,$1 $88 ,
// $
// , MatchEvaluator , group, $
Response.Write(s);
Response.Write("<br/>");
//
string depSelectedSql = " 1=1 and reserve_date>=to_date('2010-10-10','yyyy-mm-dd') and reserve_date<=to_date('2010-11-10','yyyy-mm-dd')";
Regex r = new Regex(@"reserve_date.=to_date.'(\d\d\d\d-\d\d-\d\d)", RegexOptions.IgnoreCase);
MatchCollection mc = r.Matches(depSelectedSql);
if (mc.Count < 2)
{
Response.Write("invalid query string!");
return;
}
string sdate = mc[0].Groups[1].Value;
string edate = mc[1].Groups[1].Value;
Response.Write(sdate + "<br/>" + edate);
}
結果:
http://88.88.88.88:1000/ws/services/n_ophospitaldoctorservice?wsdl2010-10-102010-11-10
MatchEvealuatorについては、他の簡単な書き方があります.この文書を参照してください.