2009-11-27 48 views
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 
} 

那是什麼將取代跟隨除\unumbers用「」空字符串斜線所有RTF標籤的正則表達式模式? 結果應該是這樣的:

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

我試圖"\\\\\\w+|\\{.*?\\}|\\}"其刪除所有跟隨一個反斜槓和所有的花括號。缺少的部分就像\\!(\\\\u)

回答

0

嘗試匹配您想要保留的標籤並替換它們。

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

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

我的意思是替換它們自己。第一場比賽'(\\\ u [\ d] +)'是你想要保留的\ u標籤,這是替換$ 1。 – Rob 2009-11-27 03:42:29

+0

對不起,有點困惑: 如果我在C++編碼,並不熟悉php或perl那麼多。 – val 2009-11-27 03:42:35

+0

啊,好的。 感謝羅布,我會嘗試 – val 2009-11-27 03:51:14