我有一個包含以下形式的衆多標籤的字符串:發現使用C#的子串與一捻
<: Entity.FieldGroup.FieldName [| Modifier] :>
我需要找到標籤並與一些值(S)取代它們。所以,比如我有可能如下文如下:
Blah <: Person.Meta.Age :> blah <: PERSON.meTA.Dependants | CommaList :>
當等取代的樣子:
Blah 30 blah Harry, Mary, John
現在的問題是:
- 可能有不同數量的打開和關閉標記之前和之後的空格(<和:>)
- 事情可能以不同的情況輸入人與人,Meta v s me
- 我不能「影響」標籤周圍的文本
- 沒有預定義的標籤名稱列表,即。明天可能會帶Animal.Kind例如
所以從性能的角度來看,這裏提取標籤的最佳方法是什麼,以便我可以替換它們?
我擔心,因爲我將標籤替換爲更改的字符串長度,因此任何偏移都不起作用,等等。有關如何實現上述優雅的任何建議?
你能舉出一個清晰的例子,而不只是說明規則 – chouaib 2015-03-03 02:09:00
我建議[Regex.Replace'的這種重載](https://msdn.microsoft.com/zh-cn/library/ms149475.aspx) – Blorgbeard 2015-03-03 02:15:31
這看起來很像一種標記語言...這是一種標記語言解析器的自然解決方案。這似乎過於寬泛,不能成爲一個明智的問題 - 例如有很多標記語言解析器可供學習。否則,您提供的規則就不足以描述任何人提供有用答案的語法。即使他們這樣做,這聽起來太像是「做我的工作」類型的問題。正則表達式*可能工作,但它可能是錯誤的解決方案。看起來像一個聰明的人的工作,誰決定嘗試重寫XML而不是僅僅使用標準的東西... – 2015-03-03 02:23:53