2011-01-25 3 views
1

は文字列にregexと$を使用して次の問題があります。誰でも手伝ってくれるのかなと思う。

bla以下のテキストはランダムな言葉です。

string text = "<id='$text1$text2$text3'><div>bla bla bla text3 bla bla</div>"; 
string pattern = "\btext3\b"; 
text = Regex.Replace(text, pattern, "####"); 

上記の場合、両方のテキストが置き換えられます。 div要素の値を変更して結果が<id='$text1$text2$text3'> <div>bla bla bla #### bla bla</div>になるようにしたいだけです。

ありがとうございます!すべての正規表現は、彼らがHTMLで使用されるようにしている必要がある場合として

+0

"\ b単語文字(¥wと一致するもの)と単語以外の文字([^ \ w]または\ Wと一致するもの)の間の位置で一致します。文字列の最初と最後の文字が単語文字の場合は、文字列の開始と終了のどちらかを指定します。 - http://www.regular-expressions.info/reference.html –

+0

"specs"を読むと、\ bについては完全に理解できません。それはなぜ私が求めるものです。別の方法で私の問題を解決することはできますか? Iveはいくつかの組み合わせを試みましたが、非常に複雑になりました。 – BaxterBoom

+0

@Loppus fyi、あなたは誰かに返信するために@ nameを追加するべきです、彼らはその方法で自分の受信箱にメッセージを受け取ります。正規表現を使ってHTMLやXMLを解析すると、うまくいくとは限りません。特定のケースでは、「$」が前に付いている場合を除いて、すべての場合に「text3」と一致させますか?あるいは、正規表現でHTML/XMLを解析することを伴わない他の同様の特殊なケースがありますか?もしそうなら...それを狭める。 –

答えて

1
string pattern = @"\btext3\b(?![^<>]*>)"; 

この間に合わせと-ソリューションは、いくつかの単純化の仮定に依存しています。たとえば、属性値に山括弧がないことを前提としています。それは合法です(少なくともHTMLで)が、実際には非常にまれです。

+0

ありがとう!それは私の場合にはうまくいくようです。それをもっとテストします。 – BaxterBoom

1
string pattern = ">text3<"; 
text = Regex.Rplace(text,pattern,">####<"); 
+0

決して簡単ではありません、私の編集したメインポストを確認してください、ありがとうとにかく – BaxterBoom

関連する問題