2016-08-18 3 views
-4

모든 텍스트를 루비의 공백과 공백으로 대체하고 싶습니다.루비의 내용 파일 바꾸기

toReplace = [ 

'<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" 
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> 
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"pl\" xml:lang=\"pl\"> 

<head>' 
] 

replacement = [ 

'<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="width=device-width, initial-scale=1">' 
] 

공백과 공백에 문제가 있기 때문에 gsub을 사용하지만 작동하지 않습니다.

contents.gsub! toReplace[i], replacement[i] 

어떻게하면됩니까?

+1

html5로 변환하려는 것 같습니다. http://www.w3schools.com/html/html5_migration.asp를 참조하십시오. – zhon

+2

웹 페이지를 구문 분석하고 새 HTML을 출력하는 데 [nokogiri] (https://github.com/sparklemotion/nokogiri)를 사용하는 것이 좋습니다. 페이지. – zhon

+1

링크 된 페이지와 "[mcve]"를 포함하여 "[ask]"를 읽으십시오. 배열 할당은 2 개 이상 예상됩니다. 너 뭐 해봤 니? 왜 안 그랬어? 현재 코드를 작성하라고 요청하는 것 같습니다. –

답변

0
당신은 어떤 문자를 피하기 위해 첫 번째 문자열을 탈출 시도 할 수

특수로 치료를 받고 : 당신은 문자열이나 정규 표현식을 사용한다

REPLACE = Regexp.escape(%Q[<!DOCTYPE... 
]) 

WITH = %Q[ 
    ... 
] 

contents.gsub!(REPLACE, WITH) 

참고, 배열이 아닌 코드에서 가지고 .