有没有人知道任何可以串起所有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}}}
这应该被细分为MERGEFIELD details_awardee_name
?
答案 0 :(得分:0)
由于我不知道解析(RTF' s)其嵌套标签的规则,我只是发布这个,这似乎是 过滤掉一些杂乱的东西。
# Raw: \\[^\s]*\s*|[{}]+\s*
# Delimited: '/\\\[^\s]*\s*|[{}]+\s*/'
\\ [^\s]* \s*
| [{}]+ \s*
Perl测试用例 -
$/ = 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}}}
输出&gt;&gt;
'ref MERGEFIELD details_awardee_name '