2010-07-02 171 views
0

$ match = array('〜(?:face \ = [\'「]?(\ w +)[\'」]?)〜i','~~ i');
$ replace = array('font-family:$ 1;','< span style =「$ 1」>');其中有一個新的<跨度元素的「面子」屬性>與「風格」屬性,但正則表達式總是失敗正則表達式失敗,空白

我想,以取代舊< font>元素時,在「面子」屬性的字體名稱包含空格,例如:新快訊。我如何修改正則表達式來解決這個問題?

+1

這通常不是一個好主意用正則表達式來解析HTML。 – Peter 2010-07-02 16:35:05

+0

但我的HTML只是簡單的,所以我不需要使用DOM來解析它:) – user366124 2010-07-02 17:01:12

回答

0

\w+替換爲.+以包含所有字符而不是「單詞」字符。或所有字符除了'這樣的:[^\']+

更新版本:

$match = array('~(?:face\=[\'"]?([^\']+)[\'"]?)~i', '~~i'); 
$replace = array('font-family:$1;', '<span style="$1">'); 
+0

非常感謝你的答案;) – user366124 2010-07-02 17:01:37

+0

不客氣。 – 2010-07-02 17:20:29