Альтернативный синтаксис:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
запрос Select может (конечно), включать выражения, операторы выбора, константы/литералы, и т.д.
Это заменит любую последовательность возврата каретки ( \ r
) и / или перевода строки ( \ n
) на один < br />
:
string formatted = Regex.Replace(original, @"[\r\n]+", "<br />");
Если вы хотите заменить только последовательности из двух или более элементов, то упрощенный ответ - использовать квантификатор {2,}
(что означает «минимум два повторения» ) вместо +
(что означает «по крайней мере одно повторение»):
string formatted = Regex.Replace(original, @"[\r\n]{2,}", "<br />");
Обратите внимание, что в приведенном выше выражении обычная комбинация CR + LF рассматривается как последовательность из двух элементов. Возможно, вы захотите рассматривать CR + LF как отдельный элемент, и в этом случае выражение станет немного более сложным:
string formatted = Regex.Replace(original, @"(?:\r\n|\r(?!\n)|(?<!\r)\n){2,}", "<br />");
Используйте следующий код:
str = Regex.Replace(str, @"[\r\n]+", "<br />");
Было бы быстрее вызвать обычный метод Replace
несколько раз и вообще не использовать регулярное выражение, например:
int oldLength;
do {
oldLength = str.Length;
str = str.Replace('\r', '\n');
str = str.Replace("\n\n", "\n");
} while(str.Length != oldLength);
str = str.Replace("\n", "<br />");
Обратите внимание, что string.Replace () намного быстрее, чем использование RegEx:
string result = oldString.Replace("\n\n","\n");
result = result .Replace("\n","<br>");