簡體   English   中英

即使單詞之間有空的HTML標記,也要替換單詞,這會使單詞分解

[英]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.

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