2011-03-25 4 views
0

그래서 데이터베이스를 Textpattern CMS에서 좀 더 일반적인 것으로 마이그레이션하려고합니다. 이미지를 가져 오는 기사 안에는 텍스트 패턴에 특정한 명령이 있습니다. 나는 이것을 일반적인 HTML 이미지 링크로 바꾸고 싶다. 지금이 순간, 그들은 SQL 파일에 다음과 같이 : 일부 정규식 물건을 내가 TextWrangler과 약간의 행운을 했어GREP/RegEx를 사용하여 문자열 찾기 및 바꾸기

<img src="4.jpg" class="dose" /> 

:

<txp:upm_image image_id="4" form="dose" /> 

내가 더 이런 일에 다음을 설정하려면 ,하지만 나는 곤두박질 친다. &을 찾는 방법에 대한 아이디어는이 모든 이미지 경로를 대체합니까?

편집 :

$body = $post['Body_html']; 
$pattern = '/txp:upm_image image_id="([0-9]+)" form="([^"]*)"/i'; 
$replacement = 'img src="/images/$1.jpg" class="$2"'; 
$body = preg_replace($pattern, $replacement, $body); 
// outputed <img src="/images/59.jpg" class="dose" /> 

답변

0

회원님이 사용하지만,이 정규식 솔루션을 시도하는 도구 확인 :이 검색 :

을 나중에 참조 할 수 있도록 , 여기에 내가 출력 PHP에서 일을 결국 무엇 이와
<txp:upm_image\s+image_id="(\d+)"\s+form="([^"]*)"\s*\/> 

그리고 대체 : WO이 아니라

<img src="$1.jpg" class="$2" /> 

주 귀하의 예제와 동일한 양식을 가진 txp 태그에 대한 rks. 여분의 속성을 가진 txp 태그가 있거나 다른 순서로있는 경우 실패합니다.

+0

최고 (맥 OS 다윈에서 작동), 마법처럼 일을 당신이 [: alnum] []를 사용,

$ echo '<txp:upm_image image_id="4" form="dose" />' | sed -e 's/^.*image_id="\([[:digit:]]*\)".*form="\([[:alpha:]]*\)".*/<img src="\1.jpg" class="\2" \/>/' <img src="4.jpg" class="dose" /> $ 

클래스 영숫자 문자가있는 경우

을 원하는 나오지도 있어요. – jpea

1

grep은 사용하지 않습니다.

+0

문자열이 하나의 txp 태그로 구성된 경우이 솔루션이 작동합니다. 그것들 사이에 물건이있는 txt 태그가 여러 개 있으면 실패합니다. – ridgerunner