긴 문자열 (즉, 전자 메일에 회신)에서 '>'문자로 시작하는 줄을 제거하려고합니다.레일 문자열에서>로 시작하는 줄을 제거하십시오.
PHP에서는 if 문을 사용하여 각 행을 반복합니다. 리눅스에서는 sed 또는 awk를 사용하려고합니다.
가장 우아한 레일 접근 방식은 무엇입니까?
긴 문자열 (즉, 전자 메일에 회신)에서 '>'문자로 시작하는 줄을 제거하려고합니다.레일 문자열에서>로 시작하는 줄을 제거하십시오.
PHP에서는 if 문을 사용하여 각 행을 반복합니다. 리눅스에서는 sed 또는 awk를 사용하려고합니다.
가장 우아한 레일 접근 방식은 무엇입니까?
. 출력을 여러 줄이 포함 된 한 줄로 지정 하시겠습니까? 나는 예를 추측하고있다.
str.lines.reject{|x| x =~ /^>/}.join # this will return a new string, without those ">" lines
또는 사용하여 정규 표현식 :
str.gsub(/^>.+\n*/. '')
더 나은 해결 방법 : 문자열 및 배열 작업을 사용
중 하나
당신은 비 사용해야합니다 욕심 많은 멀티 라인 매칭 모드 정규 표현식에 대한 :.? ^>이 라인
의 시작에 당신의 ">"문자와 일치
str.gsub(/^>.*?$\n*/m, '') # by using gsub!() you can modify the string in place
* $는 비 (줄이 끝날 때까지 시작 문자 뒤에 어떤 문자와 일치 어떤이 (당신이 정규 표현식의 끝에서)
은 "m"도 있음을 제거 할 멀티 라인 매칭을 나타내는 경우) 욕심
\ n *는을 적용 할, 개행 문자 자체와 일치 문자열의 각 행에 대해 RegExp.
당신이 시도 할 수 있습니다 :
귀하의 질문은 입력이 여러 줄을 포함하는 하나의 문자열이라고 의미한다your_string.gsub(/^\>.+\n/,'')
sed/awk의 해결책도 허용되지 않는 한 sed 및 awk 태그를 제거해야한다고 생각합니다. – Kent