2010-07-21 10 views
0

다른 애드 센스 사용자와 광고 공간을 공유하려는 html 페이지를 만들어야합니다. 나는 자바 스크립트를 사용하여 정규 표현식을 사용하여 애드 센스 코드를 찾아 바꾸려고 노력하고 있지만 막혀있다.자바 스크립트 정규식 문제

이것은 일치하려는 문자열 조각입니다.

가 술집 111,111,111,111,111, 2222222222 ""/ * 336x280 크기

는 12/12/12 */

google_ad_slot이 = 작성한 ";

및이 자바 스크립트 함유 정규식 시도한 표현 (다른 많은 조합 중에서)

<script type="text/javascript"> 
var html = document.body.innerHTML; 
html = html.replace(/pub-([\d])*(";)\r(.)*\r(.)*([\d])(";)/i,'pub-444444444444444";google_ad_slot = "3333333333333";'); 
document.body.innerHTML = html; 
</script> 

하지만 행운을 빌어 요. pub - ([\ d]) * 이외의 정규식은 방화범이 사용되는 것으로 평가되지 않습니다.

+0

[\ d]는 \ 또는 d를 나타내며 절대로 일치하지 않습니다. pub - (\ d) *를 시도하십시오. 않는 한 그것은 자바 스크립트 정규식에서 다르지만, 나는 그것이라고 생각하지 않는다. – NorthGuard

+1

@ fy-tide 이것은 사실이 아닙니다. '[\ d]'는'[0-9]'와 동일합니다. – Tomalak

+0

@fytide : 대괄호는 * 필요 없습니다 * (혼란을 줄이기 위해 제거해야합니다). '\ d'와 같은 것. 이것은 내가 알고있는 모든 정규식의 풍미에 해당한다. –

답변

1

당신은 그렇지 않은 외부 캡처 그룹, 수정하는 것은 옆에있는 * 토큰을 유지할 필요가

/pub-([\d])*(";)\r(.)*\r(.)*([\d])(";)/i 

/pub-(\d*)(";)\n(.*)\n(.*)(\d)(";)/gim 

에 변경해보십시오. 또한 \n\r보다 개행 문자와 일치 할 가능성이 큽니다. 아니면 위의 정규식 캡처 찾고 정확히을 캡처합니다 [\r\n]+

확실하지 사용할 수 있지만, 내 의견 가까이 진실에 당신을 얻을 것이다.