programing

문자열 C#의 줄 바꿈 치환

codeshow 2023. 4. 12. 22:41
반응형

문자열 C#의 줄 바꿈 치환

C#의 문자열 내에서 줄 바꿈을 치환하려면 어떻게 해야 하나요?

치환 사용Environment.NewLine

myString = myString.Replace(System.Environment.NewLine, "replacement text"); //add a line terminating ;

다른 투고에서도 언급했듯이 문자열이 다른 환경(OS)에서 온 경우 해당 특정 환경의 새로운 라인 제어 문자 구현을 교체해야 합니다.

지금까지 게시된 솔루션은 대체 솔루션일 뿐입니다.Environment.NewLine또는 교환 문자열에 회선 구분이 포함되어 있는 경우는, 콜이 발신되기 때문에 실패합니다.string.Replace여러 번.

다음은 정규 표현을 사용하여 3개의 모든 치환을 한 번에 문자열에 전달하는 솔루션입니다.즉, 교체 문자열에 줄 바꿈을 안전하게 포함할 수 있습니다.

string result = Regex.Replace(input, @"\r\n?|\n", replacementString);

To The.Anyi.9의 답변은 일반적으로 사용되는 다양한 유형의 줄 바꿈에도 유의해야 합니다.파일의 출처에 따라서는, 다른 모든 것을 확실히 파악해 두는 것이 좋을지도 모릅니다.

string replaceWith = "";
string removedBreaks = Line.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);

당신을 움직이게...

저는 환경을 사용하겠습니다.문자열의 새 줄을 삽입할 때 줄 바꿈. 문자열에서 새 줄을 모두 제거하지는 않습니다.

플랫폼에 따라 다른 유형의 새 회선을 사용할 수 있지만, 같은 플랫폼 내에서도 종종 다른 유형의 새 회선이 사용됩니다.특히 파일 형식 및 프로토콜을 다룰 때 그렇습니다.

string ReplaceNewlines(string blockOfText, string replaceWith)
{
    return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
}

코드가 다른 환경에서 실행되도록 되어 있다면,Environment.NewLine상수는, 구체적으로는, 상수가 되기 때문입니다.newline특정 환경에서 사용됩니다.

line = line.Replace(Environment.NewLine, "newLineReplacement");

그러나 다른 시스템에서 발신된 파일에서 텍스트를 가져온 경우 정답이 아닐 수 있으므로 다른 시스템에서 사용되는 새 줄 상수로 대체해야 합니다.일반적으로는\n또는\r\n.

에서 신규로 사용합니다.NET 6 방식

myString = myString.ReplaceLineEndings();

현재 문자열의 모든 줄바꿈 시퀀스를 바꿉니다.

문서:ReplaceLineEndings(라인 엔딩 치환)

새 라인을 "청소"하려면 regex를 사용하여 flamebaud 코멘트를 사용하십시오.@"[\r\n]+"최선의 선택입니다.

using System;
using System.Text.RegularExpressions;

class MainClass {
  public static void Main (string[] args) {
    string str = "AAA\r\nBBB\r\n\r\n\r\nCCC\r\r\rDDD\n\n\nEEE";

    Console.WriteLine (str.Replace(System.Environment.NewLine, "-"));
    /* Result:
    AAA
    -BBB
    -
    -
    -CCC


    DDD---EEE
    */
    Console.WriteLine (Regex.Replace(str, @"\r\n?|\n", "-"));
    // Result:
    // AAA-BBB---CCC---DDD---EEE

    Console.WriteLine (Regex.Replace(str, @"[\r\n]+", "-"));
    // Result:
    // AAA-BBB-CCC-DDD-EEE
  }
}

replace는 문자열의 치환을 수행하지 않고 교체된 문자가 포함된 새 문자열을 반환합니다.다음에 따라 줄 바꿈이 제거됩니다(바꾸기는 제외).@Brian R을 사용합니다.Bondy의 방법은 그것들을 다른 것으로 교체하는 경우, 아마도 확장 방법으로 포장될 수 있습니다.Replace 또는 제공된 확장 메서드를 호출하기 전에 먼저 늘 값을 확인하십시오.

string line = ...

line = line.Replace( "\r", "").Replace( "\n", "" );

확장 방식으로서:

public static class StringExtensions
{
   public static string RemoveLineBreaks( this string lines )
   {
      return lines.Replace( "\r", "").Replace( "\n", "" );
   }

   public static string ReplaceLineBreaks( this string lines, string replacement )
   {
      return lines.Replace( "\r\n", replacement )
                  .Replace( "\r", replacement )
                  .Replace( "\n", replacement );
   }
}

가능한 모든 줄 바꿈 방법(Windows, Mac 및 Unix)을 대체하려면 다음을 사용해야 합니다.

string.Replace("\r\n", "\n").Replace('\r', '\n').Replace('\n', 'replacement');

줄 바꿈 문자 조합이 발견되었을 때 추가 줄 바꿈을 하지 않도록 다음 순서로 지정합니다.

왜 둘 다 안 돼?

string ReplacementString = "";

Regex.Replace(strin.Replace(System.Environment.NewLine, ReplacementString), @"(\r\n?|\n)", ReplacementString);

주의: 교환strin입력 문자열의 이름을 입력합니다.

했습니다.\r\n하여 교환합니다.\t실제 탭이 있습니다.그래서 저는 다음과 같이 생각했습니다.

public string Transform(string data)
{
    string result = data;
    char cr = (char)13;
    char lf = (char)10;
    char tab = (char)9;

    result = result.Replace("\\r", cr.ToString());
    result = result.Replace("\\n", lf.ToString());
    result = result.Replace("\\t", tab.ToString());

    return result;
}
var answer = Regex.Replace(value, "(\n|\r)+", replacementString);

, 줄바꿈을 하다, 줄바꿈을 , 줄바꿈을 하다.\n,\r ★★★★★★★★★★★★★★★★★」\r\n\r ★★★★★★★★★★★★★★★★★」\r\n\n이치노

, 하다, 하다, 하다, 하다, 에 와야 .parseCSV★★★★

function parseCSV(data) {
    //alert(data);
    //replace UNIX new lines
    data = data.replace(/\r\n/g, "\n");
    //replace MAC new lines
    data = data.replace(/\r/g, "\n");
    //split into rows
    var rows = data.split("\n");
}

라인브레이크를 안전하게 교환하는 최선의 방법은

yourString.Replace("\r\n","\n") //handling windows linebreaks
.Replace("\r","\n")             //handling mac linebreaks

\n(라인피드 등)만을 줄바꿈으로 하는 문자열을 생성합니다.이 코드는 혼재된 라인브레이크를 수정하는데도 도움이 됩니다.

를 사용합니다.Replace() 메서드

Line.Replace("\n", "whatever you want to replace with");

다른 옵션은 해당 문자열 위에 를 작성하는 것입니다.독자로, 한다..ReadLine()고리를 틀어서.그런 다음 어떤 (일관된) 구분 기호를 사용하든 상관없이 선을 구분합니다.그러면 원하는 대로 진행할 수 있습니다.한 가지 방법은 를 사용하여.AppendLine위에.

장점은 "줄 바꿈"을 구성하는 요소가 프레임워크에 의해 결정되도록 할 수 있다는 것입니다.

string s = Regex.Replace(source_string, "\n", "\r\n");

또는

string s = Regex.Replace(source_string, "\r\n", "\n");

어느 길로 가느냐에 따라 다르죠

도움이 됐으면 좋겠다.

줄 바꿈만 바꾸려면 다음 절차를 따릅니다.

var input = @"sdfhlu \r\n sdkuidfs\r\ndfgdgfd";
var match = @"[\\ ]+";
var replaceWith = " ";
Console.WriteLine("input: " + input);
var x = Regex.Replace(input.Replace(@"\n", replaceWith).Replace(@"\r", replaceWith), match, replaceWith);
Console.WriteLine("output: " + x);

줄 바꿈, 탭 및 공백을 바꾸려면 다음 절차를 따릅니다.

var input = @"sdfhlusdkuidfs\r\ndfgdgfd";
var match = @"[\\s]+";
var replaceWith = "";
Console.WriteLine("input: " + input);
var x = Regex.Replace(input, match, replaceWith);
Console.WriteLine("output: " + x);

이것은 매우 긴 바람의 원라이너 솔루션이지만 특수 캐릭터 탈출을 사용할 수 없는 경우 다음과 같이 사용할 수 있는 유일한 솔루션입니다."\r" ★★★★★★★★★★★★★★★★★」"\n" ★★★★★★★★★★★★★★★★★」\x0d ★★★★★★★★★★★★★★★★★」\u000D만 아니라System.Environment.NewLinereplace()

MyStr.replace(  System.String.Concat( System.Char.ConvertFromUtf32(13).ToString(), System.Char.ConvertFromUtf32(10).ToString() ), ReplacementString  );

이것은 다소 주제에서 벗어난 것이지만 Visual Studio의 XML .props 파일 내에서 작동하도록 하기 위해 이 파일을 호출합니다.NET XML 을 사용합니다. XML .Visual Studio XML -->에서는 NET과 같은 ."\r" ★★★★★★★★★★★★★★★★★」"\n" ★★★★★★★★★★★★★★★★★」\x0d ★★★★★★★★★★★★★★★★★」\u000D만 아니라System.Environment.NewLinereplace()★★★★★★ 。

$([System.IO.File]::ReadAllText('MyFile.txt').replace( $([System.String]::Concat($([System.Char]::ConvertFromUtf32(13).ToString()),$([System.Char]::ConvertFromUtf32(10).ToString()))),$([System.String]::Concat('^',$([System.Char]::ConvertFromUtf32(13).ToString()),$([System.Char]::ConvertFromUtf32(10).ToString())))))

@mark-bayers 답변 및 보다 깨끗한 출력을 위해:

string result = Regex.Replace(ex.Message, @"(\r\n?|\r?\n)+", "replacement text");

\r\n,\n ★★★★★★★★★★★★★★★★★」\r긴 하나를 참조하고 여러 개의 발생을 하나로 단순화합니다.

언급URL : https://stackoverflow.com/questions/238002/replace-line-breaks-in-a-string-c-sharp

반응형