2014-03-06 2 views
1

모든 RTF 태그 문자열에 문자열을 지정할 수있는 라이브러리 또는 Regex 패턴을 아는 사람이 있습니까? 예를 들어, 다음 문자열 :이 MERGEFIELD details_awardee_name까지 제거해야문자열에서 RTF 태그 제거하기

{\field\flddirty{\*\fldinst ref {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid11370280\charrsid4074187 MERG}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid15665935 
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid11370280\charrsid4074187 EFIELD details_awardee_name }}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1024\langfe1024\noproof\insrsid11370280\charrsid4074187 \'abdetails_awardee_name\'bb}}} 

?

+0

는 : 곳 입력에서 오는 어떤 그것이 사용되는? –

+3

테스트하지 않음 : http://webcheatsheet.com/php/reading_the_clean_text_from_rtf.php – naththedeveloper

+0

웨슬리,이 질문은 이전에 내가 시작한 실에 대한 질문입니다. http://stackoverflow.com/questions/22224587/find-coresponding-open -close-brackets/ – jason

답변

0

(RTF 's) 더 중첩 된 태그를 구문 분석하는 규칙을 알지 못하기 때문에이 글은
의 일부 필터 인 것 같습니다.

# Raw:  \\[^\s]*\s*|[{}]+\s* 
    # Delimited: '/\\\[^\s]*\s*|[{}]+\s*/' 

    \\ [^\s]* \s* 
| [{}]+ \s* 

펄 테스트 케이스 -

$/ = undef; 
$str = <DATA>; 

$str =~ s/\\[^\s]*\s*|[{}]+\s*//g; 

print "'$str'\n"; 

__DATA__ 
{\field\flddirty{\*\fldinst ref {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid11370280\charrsid4074187 MERG}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid15665935 
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\insrsid11370280\charrsid4074187 EFIELD details_awardee_name }}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1024\langfe1024\noproof\insrsid11370280\charrsid4074187 \'abdetails_awardee_name\'bb}}} 

출력 >> 호기심

'ref MERGEFIELD details_awardee_name ' 
+0

감사합니다. PHP에서는 다음과 같이 변환되었습니다. preg_replace ('/ \\\\ [^ \\ s] * \\ s * | [{}] + \\ s * /', '', $ foundString); – jason

관련 문제