[英]C# pattern matching
我對C#有點陌生,我正在尋找一個字符串匹配模式來執行以下操作,
我有這樣的字符串
該書將在唐寧街11號的招待會上展出,主要醫療保健人員將參加
我需要創建一個span標簽以使用startIndex和length突出顯示一些文本片段,
舉個例子
- startIndex = 3,長度= 10
- startIndex = 8,長度= 8
我需要動態創建一個跨度標簽,還需要為路口創建一個單獨的跨度標簽
在這種情況下,
The < span id= 'span1' color='blue'> book < /span> < span id='intersectionSpan' color= pink > will </ span> < span id '= span2' color = 'yellow' > be showcased </ span>
任何人都遇到過各種設計模式或笑臉問題
請指教
我不認為這與設計模式有關,但我希望您能將其作為自定義控件
如您所知,標簽控件將呈現為跨度,因此開始制作新的控件customlabel,例如從標簽控件和creta函數繼承它,以接受位置(startindex和length)和顏色(red,yellow)
假設我們在控件中有此功能
private string AddSpan(string originalString, int[] location, string color)
{
string old = originalString.Substring(location[0], location[1]);
string newStr = string.Format("<span id= '{0}' color='{1}'>", "idUWant", color);
originalString = originalString.Replace(old, newStr);
return originalString ;
}
原文為《這本書》將在唐寧街11號的招待會上展出,並將有主要的醫療人員參加
該位置是簡單的二維整數數組,第一個是起始索引,第二個是length,color參數是color string
我認為最好為像這樣的類的參數制作數據容器,使其只隱藏一些屬性,如startindex,length和color,以使其更易於閱讀和維護
好吧,我將從“標簽”的集合開始。 這些將帶有要標記的文本的開始和長度。 標簽還應該能夠判斷標簽中是否有特定位置。
bool IsInTag(int position)
從那里循環遍歷字符串。 在每個位置上添加該位置上標簽的數量。 如果它大於最后一個位置,請開始一個新標簽,因為有一個新標簽與它相交。 如果較小,則由於相交剛剛結束而結束跨度。 保存該編號以用於下一個循環並重復。
那應該做。 您可能想嘗試一下它,因為這只是我的腦袋。
您可以使用IndexOf
該鏈接可以幫助您: http : //msdn.microsoft.com/zh-cn/library/ms228630%28VS.80%29.aspx
並且如果您具有startIndex和length; 您可以僅使用子字符串來獲取要注入到span標簽中的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.