簡體   English   中英

C#模式匹配

[英]C# pattern matching

我對C#有點陌生,我正在尋找一個字符串匹配模式來執行以下操作,

我有這樣的字符串

該書將在唐寧街11號的招待會上展出,主要醫療保健人員將參加

我需要創建一個span標簽以使用startIndex和length突出顯示一些文本片段,

舉個例子

  1. startIndex = 3,長度= 10
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM