我正在使用MailBee将HTML转换为文本,但是除了第一行之外,它还在每行的开头添加了额外的空间。
例如,我有这个HTML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
</head>
<body>
<div style=\"font-size:13px;font-family:Arial;\"><br></div>
<div style=\"font-size:13px;font-family:Arial;\">test</div>
<div style=\"font-size:13px;font-family:Arial;\">test2</div>
<div style=\"font-size:13px;font-family:Arial;\">test3</div>
<div style=\"font-size:13px;font-family:Arial;\">test</div>
</body>
<html>
(该html位于一行中,出于可读性考虑,我将其更改为多行。)
当我使用此代码获取文本时
MailMessage message = new MailMessage
{
BodyHtmlText = Html
};
message.MakePlainBodyFromHtmlBody();
return message.BodyPlainText;
我得到这个结果
\r\ntest \r\n test2 \r\n test3 \r\n test \r\n
如您所见,在test2,test3和test之前,添加了额外的空间。 这是一个错误还是我做错了什么? 有人能帮我吗? 谢谢
答案 0 :(得分:1)
我建议您使用一个简单的正则表达式删除行首或行尾的空格。 正则表达式:
^[ ]*|[ ]*$
它只是在行的开头或结尾匹配零个或多个空格。
您需要设置“多行”选项。
然后用一个空字符串替换空格。
使用方法:
message.BodyPlainText = Regex.Replace(message.BodyPlainText, "^[ ]*|[ ]*$", "", RegexOptions.Multiline);
现在,您的消息将删除空格。