0

原始字符串是这样的:

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\froman\fcharset0 Times New Roman;}{\f1\fnil\fcharset0 MS Shell Dlg 2;}}
\viewkind4\uc1\pard\sb100\sa100\f0\fs24\u30340?\u27494?\u35013?\u20998?\u23376?\u65292?23\u26085?\u22312?\u33778?\u24459?\u23486?\u21335?\u37096?\u30340?\u39532?\u20140?\par
\pard\f1\fs17\par
by: lena (11/26/09)\par
\par
}

什么是正则表达式模式,它将用“”空字符串替换斜线后的所有 RTF 标签,除了\unumbers?结果应如下所示:

\u30340?\u27494?\u35013?\u20998?\u23376?\u65292?23\u26085?\u22312?\u33778?\u24459?\u23486?\u21335?\u37096?\u30340?\u39532?\u20140?
by: lena (11/26/09)

我试过"\\\\\\w+|\\{.*?\\}|\\}"删除反斜杠和所有花括号后面的所有内容。缺少的部分类似于\\!(\\\\u)

4

1 回答 1

0

尝试匹配您想要首先保留的标签并替换它们。

# php
$str = preg_replace('/(\\\u[\d]+)|\\\+[\w\?]+|{.*?}/', '$1', $str);

# perl
$str =~ s/(\\\u[\d]+)|\\\+[\w\?]+|{.*?}/$1/g;
于 2009-11-27T03:03:01.717 回答