2013-08-29 5 views
1

HTML 템플릿에서 IMG src 태그를 찾아서 바꿀 정규식 패턴을 만들려고합니다. 같은 교체 후IMG를 찾고 바꾸는 정규식 패턴

<img src="http://www.domain.com/img/building.jpg" /> 

과 :

<img src="http://www.domain.com/image/timthumb.php?src=http://www.domain.com/img/building.jpg&w=800" /> 

을 나는 기본적으로 시작과 기존의 끝에 추가 할 필요가

본질적으로, 패턴은 SRC의 내용을 찾아야한다 src 특성.

찾을 패턴은 무엇이며 바꿀 패턴은 무엇입니까? 예를 들어

+0

는 [htmlagilitypack]를 사용 (http://htmlagilitypack.codeplex.com /). Regex를 사용하여 HTML을 파싱하는 것은 어렵습니다. – Liam

+0

어떤 언어를 사용하십니까? –

+0

나는 확실히 HTML을위한 정규식을 사용하여 붙어있어. 나는 "검색"과 "대체"를위한 정규식 패턴 문자열을 입력 할 수있는 addon이있는 CMS에 있습니다. –

답변

1

:

your_string.replace(/(<img\ssrc=")(.*?)("\s?\/>)/, "$1http://www.domain.com/image/timthumb.php?src=$2&w=800$3"); 

예 :

> '<img src="http://www.domain.com/img/building.jpg" />'.replace(/(<img\ssrc=")(.*?)("\s?\/>)/, "$1http://www.domain.com/image/timthumb.php?src=$2&w=800$3") 
"<img src="http://www.domain.com/image/timthumb.php?src=http://www.domain.com/img/building.jpg&w=800" />" 
+0

그래, 용서해 줘. 나는 정규식을 수행 할 수있는 CMS 템플릿 코드를 약간 사용하고 있는데 단순히 find = ""replace = ""에 대한 패턴을 입력 할 수 있습니다. 어떻게 그런 시나리오에서 정규식을 분리 할 수 ​​있습니까? –

+0

나는 찾을 수 있다고 생각 하겠지만''()''이고 바꿀 내용은''$ 1http : //www.domain.com/image/timthumb.php? src = $ 2 & w = 800 $ 3'입니다. – mishik

0

당신은 그와 함께 시도 할 수 있습니다 :

find="(<img\b(?:[^s>]+|\Bs|s(?!rc\s*=\s*))+src\s*=\s*)[\"']?((http:\/\/)?([^\/]+)\/(?:[^\/\s]+\/)*)([^\"'\s>]+)[\"']?" 
replace="$1\"$3$4/image/timthumb.php?src=$2&w=800\"" 
+0

"교체가 끝날 때 2 개의 구문 분석 오류가 있음을 확신합니다. –

+0

문제는 패턴과 바꾸기를 큰 따옴표로 묶어야한다는 것입니다 (cf : the doc). 패턴과 대체 문자열에서 모든 큰 따옴표를 이스케이프 처리했지만 이중 따옴표를 플러그인과 함께 사용하려면 어떻게 이스케이프 처리해야하는지 모르겠습니다. 최악의 경우, 각 이중 따옴표를 대용량 유니 코드로 대체 할 수있는 가능성이 있습니다 :'\ u0021' –

+0

또는 각'''을'QUOTE ' –