2014-05-16 5 views
3

표시되는 문자열의 길이를 처음 50 자로 제한하고 다음 단어 경계에서 끝내야하는 모든 문자를 제한하려고합니다. 템플릿 태그에서 regex_replace 필터를 사용하여 패턴 일치 후 "..."로 된 모든 문자를 바꿉니다. 그러나 긍정적 인 lookbehind를 사용하려면 MT가 태그의 시작으로 해석하는 것보다 적은 기호가 필요합니다. 이로 인해 근처의 태그가 손상되고 템플릿이 게시되지 않아 오류가보고됩니다. 거기에 긍정적 인 lookbehind를 템플릿에 통합 할 수있는 방법이 있습니까?Movable Type 템플릿에서 긍정적 인 lookbehind를 사용하면 패턴 문자열에서 <로 인해 오류가 발생합니다.

<mt:Ignore>Limit entryTitle length by discarding any/all chars after whole word containing 50th char</mt:Ignore> 
<mt:entryTitle regex_replace="/((?<=.{50}\b).+)/i","..."> 

답변

0

이것은 XML 문제입니다. "<"문자가 태그 내에 잘못되었습니다. &lt;으로 인코딩 :

<mt:entryTitle regex_replace="/((?&lt;=.{50}\b).+)/i","..."> 
+0

정확히 똑같은 제안을하려고했으나 확실하지 않은 것이 하나 있습니다. 내 이해에서'<'와'&'는 모두 XML 태그에서 잘못된 문자입니다. '<'은'&'때문에'\ <'으로 이스케이프해야합니까? –

+0

문자 시퀀스 '<'은 특별한 XML 엔터티 (단일 "물건"으로 취급 됨)이기 때문에 탈출 할 필요가 없습니다. 직접 테스트 할 수 있습니다. [http://www.w3schools.com/xml/xml_validator.asp] – Bohemian