2011-07-18 1 views
0

を修正するために、私はからそれが私のHTMLフラグメントを変更気づきましたこの動作を無効にすることができます。したがって、私は正規表現(C#)を使用して、 "x_anything"のような文字列を "anything"に置き換え、class = ""属性の内部で発生させたいと考えています。は正規表現GetSafeHtmlFragment X_プレフィックスに

これを行うにはRegExを手伝ってもらえますか?

おかげ

UPDATE - これが私の仕事:C#の@(逐語記号)について

private string FixGetSafeHtmlFragment(string html) 
     { 
      string input = html; 
      Match match = Regex.Match(input, "class=\"(x_).+\"", RegexOptions.IgnoreCase); 

      if (match.Success) 
      { 
       string key = match.Groups[1].Value; 
       return input.Replace(key, ""); 
      } 
      return html; 
     } 

答えて

0

イム100%確実ではないが、私は、これは任意のclass=""の内側x_と一致すべきだと思うし、空の文字列に置き換えます。

string input = 'class="x_something"'; 
Match match = Regex.Match(input, @'class="(x_).+"', 
    RegexOptions.IgnoreCase); 

if (match.Success) 
{ 
    string key = match.Groups[1].Value; 
    string v = input.Replace(key,""); 
} 
+0

おかげで、市民CONN。 – Anon2321

0

これはbuを投稿してから1年以上経ちましたここでは、最大3つのクラスインスタンスを削除する正規表現を使用できます。私はよりクリーンな方法があると確信していますが、それは仕事を完了します。

VB.Netコード:

Regex.Replace(myHtml, "(<\w+\b[^>]*?\b)(class="")x[_]([a-zA-Z]*)()?(?:x[_])?([a-zA-Z]*)?()?(?:x[_])?([^""]*"")", "$1$2$3$4$5$6$7")