正则表达式不工作,我不知道如何解决它

时间:2014-02-03 22:06:27

标签: regex html-parsing

我有这段HT​​ML:

<span style="color: rgb(85, 85, 85); font-family: Arial,Verdana,Helvetica; font-size: 10pt; font-weight: normal; line-height: 14pt;">LG ha tolto i veli al nuovo&nbsp;LG Chocolate, nome in codice <strong>BL40</strong>, un cellulare dalla forma insolita e dai contenuti tecnologici molto avanzati.&nbsp;A prima vista colpisce subito l'imponente <strong>schermo LCD da&nbsp;4 pollici&nbsp;e risoluzione di 800x345 pixel</strong>, che corrispondono a un f<strong>ormato di&nbsp;21:9</strong>. Questo rapporto d'aspetto permette di vedere a tutto schermo i film in questo formato, ma non solo: a beneficiarne è infatti anche la navigazione sui siti Internet. Grazie poi alla funzionalità&nbsp;Dual Screen UI&nbsp;è possibile visualizzare contemporaneamente sullo schermo due tipi di contenuti differenti.</span>

我正在使用正则表达式去除跨度。我必须使用完全匹配来剥离跨度,因为我正在处理大约12.000个文档。

我正在使用:

$string = preg_replace( '/<span style="color: rgb(85, 85, 85); font-family: Arial,Verdana,Helvetica; font-size: 10pt; font-weight: normal; line-height: 14pt;">(.*?)<\/span>/s', '<p>$1</p>',$string);

它不起作用,我也尝试使用Rubular。为什么呢?

2 个答案:

答案 0 :(得分:1)

你应该转义括号:

$string = preg_replace( '/<span style="color: rgb\(85, 85, 85\); font-family: Arial,Verdana,Helvetica; font-size: 10pt; font-weight: normal; line-height: 14pt;">(.*?)<\/span>/s', '<p>$1</p>',$string);

答案 1 :(得分:0)

您的具体错误并非在color: rgb\(85, 85, 85\);中逃避您的父母。如果你这样做,你的正则表达式将匹配

http://rubular.com/r/b7iBT5Apd6