2012-12-17 41 views
2

我想從下面的字符串中訪問font-family名稱,然後在我想要放回名稱的名稱上應用過濾器之後。這是我的字符串:如何訪問c#中的字符串的一部分,並把它放回去?

font-size:36px; font-style:normal; font-variant:normal; font-weight:600; font-stretch:normal; text-align:center; line-height :125%;字母間距:0像素;字間距:0像素;寫入模式:LR-TB;文本錨:中部;填充:#6b055f;填充不透明度:1;行程:無;字體家庭:阿貝爾; -inkscape-font-specification:'Abel,Semi-Bold'

我如何在c#中執行此操作?

+4

[你有什麼試過](http://whathaveyoutried.com)?請張貼您當前的嘗試並解釋您卡住的位置。 – Oded

+0

你知道字符串類是不可變的嗎? http://stackoverflow.com/questions/2365272/why-net-string-is-immutable – kenny

+0

你是什麼意思的「放回去」?字符串是不可變的,所以做一個子字符串不會改變原來的。沒有必要「放回去」。除非你試圖改變它,但如果是這樣的話,請更具體一些。 – cadrell0

回答

4

您可以使用String類,該類揭示了所有需要用這種方法破解的方法。比如用String.IndexOf來查找一個字符或字符串的索引,然後用String.Substring來提取,那麼你可以用String.Replace

這應該足以讓你開始,如果你有一個問題有關的具體問題,然後問。

2

您可以使用Regex.Replace

string test = "stroke:none;font-family:Abel;-inkscape-font-specification:'Bickham Script Pro Semibold, Semi-Bold'"; 

// search for the font style 
Regex rex = new Regex(";font-family:.*;"); 

// replace the font with a new font 
string newString = rex.Replace(test,";font=famliy:Arial;"); 
0

我會使用ASP.NET的力量,而不是解析字符串自己。爲什麼重新發明輪子?

string style = "font-size:36px;font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#6b055f;fill-opacity:1;stroke:none;font-family:Abel;-inkscape-font-specification:'Abel, Semi-Bold'"; 
System.Web.UI.WebControls.Label label = new System.Web.UI.WebControls.Label(); 
label.Style.Value = style; 
label.Style["font-family"] = "Verdana"; 
style = label.Style.Value; 
label.Dispose(); 

這也可以在WinForms中使用,您只需添加對System.Web程序集的引用即可。

0

你可以做這樣的事情:

public static class CssStyle 
{ 
    public static string Update(string style, string key, string value) 
    { 
     var parts = style.Split(';'); 

     for (int i = 0; i < parts.Length; i++) 
     { 
      if (parts[i].StartsWith(key)) 
      { 
       parts[i] = key + ":" + value; 
       break; 
      } 
     } 

     return string.Join(";", parts); 
    } 
} 

這將讓你有可能更新該樣式的任何部分的通用功能。如果它尚不存在,也可以將其擴展爲添加樣式。

相關問題