在Java中,我有一個任意的HTML文檔作爲字符串。爲簡單起見,說:轉換前後的字符串索引
String original = "Hello, <strong>this</strong> is a string";
和我有不同的位置的記錄字符串中,始終在文本中,而不是一個標籤內。例如,單詞「is」的開頭和結尾的索引是29和31.
然後,我對字符串執行轉換 - 在這種情況下刪除HTML標籤。這使得:
original = "Hello, this is a string";
有沒有得到詞的新的開始和結束索引的一種優雅的方式「是」現在(12和14)?
我能想到的一種可能的解決方案是在每個原始索引處插入一個「標誌」,剝離HTML,然後在記錄其位置時移除標誌。這不應該導致HTML剝離問題,因爲索引總是出現在標籤之外。
如果這實際上是最好的方法,沒有人有任何建議,以確定選擇「標誌」,絕對不會巧合發生在任何HTML文件?
任何你不能說的理由:startNew = startOld - (lengthNew - lengthOld)? – mfrankli 2012-03-26 15:24:48
@mfrankli我認爲我的示例有點過於簡化了 - 實際上,在所需的索引後面可能會出現其他html標記,這些html標記在刪除後會阻止將字符串長度的變化等同於距字符串開頭的距離。 – 2012-03-26 15:29:19