English 中文(简体)
How can I replace multiple line breaks with a single <BR>?
原标题:

I am replacing all occurances of with the <BR> tag, but for some reason the text entered has many in a row, so I need to combine them.

Basically, if more than 1 occur together, replace it with just a single <BR> tag.

Can someone help me with this?

最佳回答

This will replace any sequence of carriage-returns ( ) and/or linefeeds ( ) with a single <br />:

string formatted = Regex.Replace(original, @"[
]+", "<br />");

If you only want to replace sequences of two or more items then the simplistic answer is to use the {2,} quantifier (which means "at least two repetitions") instead of + (which means "at least one repetition"):

string formatted = Regex.Replace(original, @"[
]{2,}", "<br />");

Note that the expression above will treat the common CR+LF combination as a sequence of two items. It s probable that you ll want to treat CR+LF as a single item instead, in which case the expression becomes slightly more complicated:

string formatted = Regex.Replace(original, @"(?:
|
(?!
)|(?<!
)
){2,}", "<br />");
问题回答

Use the following code:

str = Regex.Replace(str, @"[
]+", "<br />");

It could well be faster to call the normal Replace method multiple times and not use a Regex at all, like this:

int oldLength;
do {
    oldLength = str.Length;
    str = str.Replace( 
 ,  
 );
    str = str.Replace("

", "
");
} while(str.Length != oldLength);

str = str.Replace("
", "<br />");

Note that string.Replace() is much faster than using RegEx:

string result = oldString.Replace("

","
");
result = result .Replace("
","<br>");




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签