3

我使用的数据库中的一列包含 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 的相同表达式时,它不会删除一半的字符。

那里有正则表达式大师吗?

4

1 回答 1

4

使用此代码。它会正常工作。

$string = preg_replace("/(\{.*\})|}|(\\\S+)/", "", $string);

请注意,我在正则表达式的开头和结尾添加了一个“/”。

于 2013-06-26T11:08:48.763 回答