[英]Replace word even if it has empty HTML tags between it, which breaks it up
我知道這是一個相當奇怪的問題。 我使用了一個名為pdf2htmlEX
的工具,該工具將PDF轉換為HTML。 到目前為止,結果令人印象深刻。 在轉換為HTML的所有PDF中,我還沒有看到一個錯誤。
使用此HTML,我需要用C#動態替換一些字符串。 但是,盡管我在導出為PDF之前在文檔中寫了#SOME_STRING
,但我不能簡單地說line.Replace("#SOME_STRING", "Another string")
。 為什么不呢,您可能會問? 因為pdf2htmlEX
的輸出看起來像這樣:
<div class="t m0 x5 h5 ya ff4 fs3 fc0 sc0 ls0 ws0">#SOME_ST<span class="_ _5"></span>RING </div>
看到帶有_
和_5
類的空span標簽嗎? 是的,這阻止了我替換我的話。 _5
類僅具有一些寬度(例如width: 0.9889px
)。
在這種情況下,如何將#SOME_ST<span class="_ _5"></span>RING
替換為其他內容?
這是一些情況:
(#SOME_STRING) #SOME_ST<span class="_ _5"></span>RING
(#SOME_OTHER_STRING) #SOME_<span class="_ _7"></span>OTHER_ST<span class="_ _5"></span>RING
我有點迷失在這里,因為我無法刪除所有_5
元素,因為每次我更改文檔中的某些內容時,該類都是隨機的。
編輯:所以我基本上需要一種方法來從我自己的鍵值對中過濾掉HTML標記,因此我可以替換#SOME_STRING -> SOMETHING_ELSE
類的詞。
嘗試使用正則表達式過濾所有空跨度:
var myRegex = new Regex(@"(?<emptyspan><span[^>]*></span>)", RegexOptions.None);
var strTargetString = @"<div class=""t m0 x5 h5 ya ff4 fs3 fc0 sc0 ls0 ws0"">#SOME_ST<span class=""_ _5""></span>RING </div> <span></span>";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
var emptyString = myMatch.Groups["emptyspan"].Value;
// replace or remove empty string ??
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.