正规格式帮助想要

时间:2009-11-27 02:41:34

标签: regex rtf tr1

原始字符串是这样的:

{\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
}

除了{“1}}之外的空字符串斜杠后,将使用斜杠替换所有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+|\\{.*?\\}|\\}"

1 个答案:

答案 0 :(得分:0)

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

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

# perl
$str =~ s/(\\\u[\d]+)|\\\+[\w\?]+|{.*?}/$1/g;