스트림/문자열에서 모두 escape sequences을 찾아서 제거하는 빠른 방법이 있습니까 ??스트림에서 이스케이프 시퀀스를 제거하는 방법
답변
희망 :
string inputString = "\ncheese\a";
char[] escapeChars = new[]{ '\n', '\a', '\r' }; // etc
string cleanedString = new string(inputString.Where(c => !escapeChars.Contains(c)).ToArray());
참조하는 이스케이프 시퀀스는 일반적으로 인쇄 할 수없는 문자 (새 줄 또는 탭)이거나 소스 코드 파일 (예 : 백 슬래시 "\
")에 사용되는 다른 문자와 충돌하는 문자 기반의 문자입니다.).
디버거에서 디버거에서 이스케이프 된 문자로 표시된 이러한 문자가 표시 될 수 있지만 스트림의 실제 문자는 "이스케이프 처리"되지 않으며 실제 문자 (예 : 줄 바꿈 문자)입니다.
당신은 (예 : 개행 문자) 특정 문자를 제거 당신은 당신이 실제로 일부를 (예를 들어, 문자 "A")
// Removes all newline characters in a string
myString.Replace("\n", "");
다른 문자 일을 할 경우 같은 방식으로 제거하려면 (예 : 소스 코드 파일) 이스케이프 문자가 포함 된 문자열에 대한 처리는 당신은 단순히 이스케이프 동등한와 이스케이프 문자열을 대체 할 수
// Replaces the string "\n" with the newline character
myString.Replace("\\n", "\n");
을 내가 백 슬래시의 이스케이프 시퀀스를 사용하여 위의 해당 그래서 t 대신에 "\ n"이라는 문자열을 찾습니다. 그는 개행 문자입니다. 울부 짖는 소리 구문은 당신이
string inputString = @"hello world]\ ";
StringBuilder sb = new StringBuilder();
string[] parts = inputString.Split(new char[] { ' ', '\n', '\t', '\r', '\f', '\v','\\' }, StringSplitOptions.RemoveEmptyEntries);
int size = parts.Length;
for (int i = 0; i < size; i++)
sb.AppendFormat("{0} ", parts[i]);
Okay Thanx, 저는이 시퀀스가 너무 특별해서 명령이 하나의 작업에서 모든 것을 찾을 수 있기 때문에 생각했습니다. – mono
것은 당신이 적은 코드에 대한려고하는 경우에 대한 전체 도움이 될 것입니다
탈출 sequense는 일반적으로 시작하는 문자의 문자열입니다 ESC-char이지만 임의의 문자를 포함 할 수 있습니다. 그들은 커서 위치 그래픽 모드 등을 제어하기 위해 터미널에서 사용됩니다. http://en.wikipedia.org/wiki/Escape_sequence 여기에 파이썬을 구현했습니다. 제어 문자를 감지하는 C.
#!/usr/bin/python2.6/python
import sys
Estart="\033" #possible escape start keys
Estop="HfABCDsuJKmhlp" #possible esc end keys
replace="\015" # ^M character
replace_with="\n"
f_in = sys.stdin
parsed = sys.stdout
seqfile= open('sequences','w')#for debug
in_seq = 0
c = f_in.read(1)
while len(c) > 0 and not c=='\0':
while len(c)>0 and c!='\0' and not c in Estart:
if not c in replace :
parsed.write(c)
else:
parsed.write(replace_with[replace.find(c)])
c = f_in.read(1)
while len(c)>0 and c!='\0' and not c in Estop:
seqfile.write(c)
c = f_in.read(1)
seqfile.write(c) #write final character
c = f_in.read(1)
f_in.close()
parsed.close()
seqfile.close()
왜 파이썬을 게시하겠습니까? – MyKuLLSKI
당신은 System.Char.IsControl()을 사용할 수 있습니다로 변환하기 쉬운 충분합니다.
는 문자열에서 제어 문자를 필터링하려면 :public string RemoveControlCharacters(string input)
{
return
input.Where(character => !char.IsControl(character))
.Aggregate(new StringBuilder(), (builder, character) => builder.Append(character))
.ToString();
}
그러나 당신이 먼저 IEnumerable<char>
에 Stream
를 변환하는 방법이 필요합니다, 당신은 비슷한 일을 할 수있는 스트림에서 제어 문자를 필터링하려면.
public IEnumerable<char> _ReadCharacters(Stream input)
{
using(var reader = new StreamReader(input))
{
while(!reader.EndOfStream)
{
foreach(var character in reader.ReadLine())
{
yield return character;
}
}
}
}
그럼 당신은 제어 문자를 필터링하는 데이 방법을 사용할 수 있습니다 :
public string RemoveControlCharacters(Stream input)
{
return
_ReadCharacters(input)
.Where(character => !Char.IsControl(character))
.Aggregate(new StringBuilder(), (builder, character) => builder.Append(character))
.ToString();
}
- 1. SDL에서 이스케이프 시퀀스를 구현하는 방법
- 2. MSI Unistall : UI 시퀀스를 강제로 제거하는 방법
- 3. PHP를 사용하여 ANSI 이스케이프 시퀀스를 HTML로 변환
- 4. 오라클 시퀀스를 확인하는 방법
- 5. C#에서 문자열에서 문자 이스케이프 문자를 제거하는 방법
- 6. 터미널 유형에 따라 인쇄 이스케이프 시퀀스를 방지하려면 어떻게해야합니까?
- 7. sqlite3에서 이스케이프 시퀀스를 사용하여 테이블 이름을 선언 할 수 있습니까?
- 8. 원시 입력 모드에서 터미널 이스케이프 시퀀스를 보내려면 어떻게해야합니까?
- 9. 이 방법이 Ruby에서 유니 코드 이스케이프 시퀀스를 이스케이프 처리하지 못하게하는 가장 좋은 방법입니까?
- 10. 우리는 16 진수 이스케이프 시퀀스를 유니 코드 이스케이프 시퀀스보다 선호해야하는 상황이 있습니까?
- 11. 실시간 스트림에서 오디오를 재생하는 방법
- 12. Hibernate에서 시퀀스를 생성하고 읽는 방법?
- 13. "--orphan"이라는 분기를 제거하는 방법
- 14. 파이썬 문자열에서 유니 코드 이스케이프 시퀀스를 유니 코드 문자로 변환하는 방법
- 15. PowerShell 문자열 변수에 저장된 이스케이프 시퀀스를 무시하는 방법? 내 PowerShell 스크립트에서
- 16. ncurses 이스케이프 시퀀스 감지
- 17. SQL 'LIKE'명령에서 작은 따옴표를 이스케이프 처리하는 방법
- 18. 이스케이프 문자 삽입
- 19. fmt에서 ANSI 색상 이스케이프 코드를 숨기는 방법
- 20. C에서 동적으로 파일 스트림에서 배열을 채우는 방법
- 21. 스트림에서 GZip을 압축 해제하는 방법 (C#)?
- 22. 시퀀스를 사용하는 오토 맵핑 협약을 작성하는 방법
- 23. Clojure에서 시퀀스를 바이트 []로 변환하는 방법?
- 24. MySQL 5.1community 에디션에서 시퀀스를 생성하는 방법
- 25. SQL에서 고유 한 서브 시퀀스를 선택하는 방법?
- 26. 한 번 이상 애니메이션 시퀀스를 실행하는 방법
- 27. XML 매핑에서 프로퍼티로 Hibernate에서 시퀀스를 사용하는 방법
- 28. 엑셀 시트에서 함수 호출 시퀀스를 보장하는 방법
- 29. onMessage의 스트림에서 완전한 데이터 읽기
- 30. mysql에 이스케이프 문자를 삽입하는 방법
는 "이스케이프 시퀀스"정의합니다. – BoltClock
문자열에서 \ 이스케이프 문자를 참조하는 경우 대답은 아니오입니다. –
당신은 바이트 스트림을 의미합니까?! – Cipi