2012-03-31 4 views
11

내 문자열을 모두 regex gsub 사용하여 삭제, 짧은 방법이 있습니까? string.gsub(/\A.*\//,'')Ruby에 Regex Delete가 있습니까?

+3

세 명의 등장 인물이 정말로 당신에게 다가 가고 있습니까? –

+0

lol은 많은 문자열을 삭제하는 것처럼 보입니다. 하지만 gsub을 통해 그것을하는 것은 내가 잘못하고있는 것처럼 보입니다. 그것은 string.delete를 통해 이루어져야합니다. –

+0

string.delete는 삭제할 문자 만 사용하고 regexp는 사용하지 않습니다. string.slice! regexp를 기반으로 문자열의 일부를 제거하는 데 사용할 수 있지만 gsub보다 길다. – Pafjo

답변

5

방법 중 하나는 자신의 짧은 방법을 추가하는 것입니다

class String 

    def del(regexp) 
    gsub(regexp,'') 
    end 

    def del!(regexp) 
    gsub!(regexp,'') 
    end 

end 

일반적으로 예를 lib 디렉토리/문자열 extensions.rb를 들어, lib 디렉토리/디렉토리에

머리를 갈 것이 코드 원숭이 패치이기 때문에 일부 프로그래머는 실제로 이것을 싫어합니다. 저는 개인적으로 코드를 이해하기 쉽게 만들어주기 때문에 프로젝트를 좋아합니다. 일단 "del"메서드가 있으면,이 함수에 대한 호출이 regexp을 삭제하는 것입니다.

+0

+1, 아무도 이것을 투표하지 않은 것에 놀랐지 만. –

3

저는 그렇게 생각하지 않습니다.

String :: delete는 문자를 삭제하고 정규 표현식과 일치하지 않으며 완전히 다른 접근 방식입니다.

내가 너의 줄을 "짧게"만들 수있는 유일한 방법은 string.gsub!(/\A.*\//,'') (거기에 주목하라)을 사용하는 것입니다. 갈 수있는 방법

, 나는 당신이 대신을 유지 당신이 하려는 문자열의 일부를 지정할 수 있습니다 :

+0

@Vache 하하, 맞아. 그것을 수정했습니다 : P – Castilho