簡體   English   中英

C# 替換截斷的 base64 圖像標簽

[英]C# Replace truncated base64 image tags

我有一些包含 base64 內聯圖像的 HTML blob,我正在尋找如何截斷它們 - 最好使用一行正則表達式。

<img id="foobar" class="wdssd" src="data:image/jpeg;base64,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" />

我想要的是,如果base64圖像的數據大於100個字符,那么將其截斷如下...


<img id="foobar" class="wdssd" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgH...eQeK4fQsc3w+Nl" />

基本上,您保持標簽不變,但您所做的只是取前 50 個字符 + '...' + 最后 10 個字符並用它替換原始字符串。

您可以使用嵌套捕獲組來執行此操作...然后使用正則表達式替換使其全部發生在一行中。

sHTML = 
    Regex.Replace(sHTML, 
                  @"\""(?<intro>data:image\/[^;]*\;base64\,)([^\""]{200,}(?<sdata>[^\""]{50})(?:[^\""]*)(?<edata>[^\""]{10}))\""", 
                  "\"${intro}${sdata}...${edata}\"");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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