我使用的数据库中的一列包含RTF字符串,我想用PHP删除它们,只留下句子。
如果我没记错的话,这是一个MS SQL数据库2005.
从数据库中提取的一种字符串的示例(需要更多信息,其余部分类似):
{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
\viewkind4\uc1\pard\lang1033\f0\fs17 ASSEMBLE COMPONENTS AS DETAILED ON DRAWING.\lang2057\fs17\par
}
我希望将其删除只返回:
ASSEMBLE COMPONENTS AS DETAILED ON DRAWING.
现在,我已经成功地在ASP.NET中为前一个项目剥离了字符,但是我想使用PHP来实现。这是我在ASP.NET中使用的正则表达式,我可以添加完美的工作:
"(\{.*\})|}|(\\\S+)"
但是,当我尝试在PHP中使用preg_replace中的相同表达式时,它不会删除一半的字符。
那里有任何正则表达的大师吗?
答案 0 :(得分:4)
使用此代码。它会正常工作。
$string = preg_replace("/(\{.*\})|}|(\\\S+)/", "", $string);
请注意,我在正则表达式的开头和末尾添加了'/'。