2014-06-23 2 views
0

문자열을 입력으로 받았습니다.
문자열에서 다음과 같은 원하지 않는 문자를 제거하는 가장 좋은 방법은 무엇입니까?문자열에서 원하지 않는 문자를 제거하십시오.

문자를 기준으로 문자열과 반복 문자를 반복하는 것 외에 다른 방법이 있습니까?

+0

1 단계 :

따라서 깨끗하고 안전한 방법으로 같은 목표를 달성하기 원하는 문자가 일치하지 않는 것을 필터링하는 부정 문자 클래스를 사용 대괄호 사이에 이러한 문자를 동봉 '[]'. 2 단계 : 내부 정사각형 닫는 괄호'\]'를 벗어납니다. 3 단계 :? 4 단계 : 이익을 올리십시오! – HamZa

+5

보관할 문자를 지정하는 것이 훨씬 안전합니다. – ikegami

+0

당신은''''''''''과'''에 대해서 언급했으나''''''''에 대해서는 어떻게 되셨습니까 – ikegami

답변

3

이 훨씬 안전이 유지하고자하는 문자를 지정합니다.

이 경우 제거 할 표준 키보드에 모든 구두점 문자가 나열되어있는 것처럼 보입니다. 당신이 지정하지 않은 유일한 것은 글자, 숫자 및 공백입니다.

s/[^a-zA-Z0-9\s]+//g; 
+0

독일어 (ß), 라틴 문자 등이 제거되도록 유니 코드 문자를 방지하려는 경우 (OP) 원하는대로 두 번째 방법을 사용합니다. – OnlineCop

+0

하지만 s /// 대신 tr ///를 사용하십시오. 아마도 더 효율적 일 것입니다. –

+0

@DaveCross 특히 \ s' 문자 클래스를 사용할 수 있기를 원한다는 점을 고려할 때 조기 최적화라고 생각합니다. OP는 다른 문자 클래스를 사용할 수도 있습니다. 그러나, 당신은 정확하고 다음은 내 정규 표현식과 동일합니다 :'tr/a-zA-Z0-9 \ t \ n \ r // cd;' – Miller

관련 문제