我以前的帖子得到了部分剝離的標籤,所以這裏要再次重申:的Perl:標籤分隔的字符串內全球substition
我的目標是取代尾隨的所有實例 - 一個尾隨+標籤括號內。讓我們假設要被替換的行看起來是這樣的:
<h> aa- aa- </h> <h> ba- ba- </h>
,應該事後看起來像
<h> aa+ aa+ </h> <h> ba+ ba+ </h>.
首先我嘗試這樣表達:
s/<h>(.*?)-(.*?)<\/h>/<h>$1+$2<\/h>/g;
其產生這樣的輸出:
<h> aa+ aa- </h> <h> ba+ ba- </h>.
T他的g選項會導致每行有多個替換,但僅限於每個標記支架的第一個實例(並且僅當兩個圓括號中包含問號時)。
爲了縮小這個問題,我然後試圖實現不考慮標籤的替換。表達
s/(.*?)-(.*?)/$1+$2/g;
確實導致所需結果
<h> aa+ aa+ </h> <h> ba+ ba+ </h>.
這將替換標記括號的外面,以及,當然。
那麼,我的第一個表達式有什麼問題,我如何實現我在標籤括號內完全替換的目標?
如果您實際上沒有新問題,請不要發佈新問題,請編輯您的原始問題。你應該刪除這個新問題。 – Gilles 2010-08-01 12:27:04