2012-04-17 3 views
1

단일 문자 목록 대신 전체 문자열로 문자열을 다듬을 수있는 방법은 무엇입니까?문자열로 문자열 자르기

HTML 문자열 시작 부분과 끝 부분에 모두   및 공백을 제거하고 싶습니다. 그러나 방법 String.Trim()은 문자열 세트가 아닌 문자 집합에 대한 오버로드 만 있습니다.

+1

이 –

답변

8

당신은 HttpUtility.HtmlDecode(String)를 사용하고 (String.Trim()

HttpUtility.HtmlDecode on MSDN
HttpServerUtility.HtmlDecode on MSDN에 대한 입력으로 당신은을 통해 액세스 할 수있는 래퍼 결과를 사용할 수 있습니다 Page.Server 속성)

string stringWithNonBreakingSpaces; 
string trimmedString = String.Trim(HttpUtility.HtmlDecode(stringWithNonBreakingSpaces)); 

참고 :이 쉽고 신속 on은 입력의 모든 HTML 문자열을 디코딩합니다.

+0

입니다. @brgerner가 문자열을 디코드하고 다시 인코딩하지 않으려면 Regex도 트릭을 수행합니다. . – jbl

+0

네, 사실 저는 정규 표현식 라우트 나 심지어'String.Replace'라고 생각합니다. 나에게 쪽지를 추가했다 :) – abhilash

+0

@ABKolan 고마워, 그게'(HttpUtility.HtmlDecode (String)')와 함께' '. '\ n'과'\ r'을 다듬는 방법이 있습니까? – brgerner

2

Trim 메서드는 현재 문자열에서 기본적으로 모든 선행 및 후행 공백 문자를 제거합니다.

편집 : 편집 한 후 문제에 대한 해결 방법 :

string input = @" &nbsp; <a href='#'>link</a> &nbsp; "; 
Regex regex = new Regex(@"^(&nbsp;|\s)*|(&nbsp;|\s)*$"); 
string result = regex.Replace(input, String.Empty); 

이 모든 후행 및 선행 공백과 &nbsp;을 제거합니다. 문자열이나 문자 그룹을 표현식에 추가 할 수 있습니다. 모든 탭을 손질한다면 너무 정규식은 단순히 될 것이다 :

Regex regex = new Regex(@"^(&nbsp;|\s|\t)*|(&nbsp;|\s|\t)*$"); 
+0

@brgerner는'내 질문을 편집  ' –

+0

에서 텍스트' " 을"'제거하지만하고 싶은 쉬운 정규식 될 것이다 : 문자열의 시작에서 모든 공백을 선택하지 않고 쉽게 : 내 첫 번째 버전은 ' '텍스트를 삼켰다. – Matten

+0

을 문자열 – brgerner

1

찾고 계신 것이 확실한가요?

string str = "hello &nbsp;"; 
    str.Replace("&nbsp;", ""); 
    str.Trim(); 
+0

이것은 처음부터가 아니라 모든 곳을 대체 할 것입니다. –

1

사용 정규식은 다윗 헤퍼 말했다. ^(\ |&nbsp;)*

+0

그는 시작과 끝 모두에서 문자열을 다듬 으려고합니다 –

+0

이것은 완전한 힌트가 아닌 해결책 일뿐입니다 –