2011-12-19 44 views
-1

我需要XML文件來替換以下行:記事本+ + XML的正則表達式替換

hashName="'Miecz Nieb. Wojownika+5IMiecz Nieb. Wojownika+5" name="Miecz Nieb. Wojownika+5" 

正如上面的一行是不正確的,我希望它被替換:

hashName="'Miecz Nieb. Wojownika+5'" name="Miecz Nieb. Wojownika+5" 

(它應該從名稱=「」attr!中取出項目名稱)。

這是我目前所得到的,它沒有按預期工作,因爲它確實刪除了我的name="..."屬性。

搜索:

hashName="(')(.*)"(.)name="(.*)"(.)/

替換爲:

hashName="'\4'" name="\4"

+0

[在解析XML或HTML與正則表達式](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – Benoit 2011-12-19 07:37:12

+2

你有一個點你的正則表達式在最後一個報價之後,但是由於輸入中的最後一個報價在最後,沒有任何背後的信息,所以不匹配。 – 2011-12-19 07:44:59

回答

1

因爲這是工作

0這個簡單的例子

搜索

hashName="[^"]*"\s*name="([^"]*)" 

hashName="'\1'" name="\1" 

取代如果你不想捕獲或組字符,不要把它周圍的支架,爲此我刪除了其中的大多數。

爲了避免太多匹配,例如,如果在一行中有兩個「名稱」屬性,我使用[^"]*來進行非貪婪匹配。

1

這應該工作

Search for: hashName=\".+\" name=\"(.+)\" 
Replace with: hashName="'\1'" name="\1" 
相關問題