как проверить строковое значение, если табличный тег доступен, и реализовать регулярное выражение - PullRequest
0 голосов
/ 30 октября 2019

У меня есть строковая переменная, которая составляет текст и HTML-теги. Как выполнить регулярное выражение только внутри тега html table ? это возможно?

string input = "Hello,\nTRAVEL DETAILS\n<table border=\"1\">\n<tr>\n<th align=\"center\">Initial Travel Date</th>\n<th align=\"center\">Reference Number</th>\n<th align=\"center\">First Name</th>\n<th align=\"center\">Surname</th>\n<th align=\"center\">Main Reason</th>\n<th align=\"center\">Client ID</th>\n</tr>\n<tr>\n<td align=\"center\">{TRV TRL INIT.trn}</td>\n<td align=\"center\">{TRV REF NO.trn}</td>\n<td align=\"center\">{TRV FIRST NM.trn}</td>\n<td align=\"center\">{TRV SURNAME.trn}</td>\n<td align=\"center\">Internal Meeting</td>\n<td align=\"center\">{TRV CLIEN ID.trn}</td>\n</tr>\n</table>"

string output = Regex.Replace(input, @"\t|\n|\r", "");
return output;

Мне нужно только удалить "\ n" внутри элемента таблицы

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Я нашел способ устранить "\ n" внутри таблицы. но потом это привело к тому, что он не использовал регулярное выражение. вот обновленные коды

    string input = emailMessage.Message.Replace("\n<tr>\n", "<tr>").Replace("</th>\n", "</th>").Replace("\n</tr>", "</tr>")
        .Replace("</td>\n", "</td>").Replace("\n</table>", "</table>");
    string output = input;

    return output;

спасибо всем за комментарии и предложения

0 голосов
/ 30 октября 2019

Вы можете использовать элемент управления WebBrowser для анализа строки HTML, получения фрагмента таблицы и удаления оттуда новых строк.

Или вы можете использовать IHTMLDocument, IHTMLDocument2, IHtmlDocument3... до 8 для разбора HTML. Вам нужно включить Mshtml.dll в ваши ссылки на проект.

Или использовать сторонний анализатор HTML.

Не пытайтесь манипулировать необработанной строкой, если вы не хотите написать собственный анализатор HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...