2010-08-13 82 views
-1

我有一個像這樣的字符串<name>sekar</name>。我想分割這個字符串(我正在使用Perl),只取出sekar,並將其推入數組中,同時留下其他內容。分割一個變量並放入一個數組

我知道如何推入陣列,但與分裂部分碰撞。

有沒有人有這樣做的想法?

+1

@middaparka,你的網址被截斷,但沒有鏈接:) – Benjol 2010-08-13 11:41:37

+4

解析XML,使用和XML解析器。要解析HTML,請使用HTML解析器。 – 2010-08-13 13:07:47

回答

1
push @output, $1 if m|<name>(\w*)</name>|; 
+0

謝謝hlynur 它完美的工作 – 2010-08-13 12:27:27

1

嘗試這種情況:

my($name) = $string =~ m|<name>(.*)</name>|; 

來自的perldoc perlop得到:

如果未使用的 「/ G」 選項, 「M //」 在列表上下文返回一個 列表包括以下各項的子表達式與模式中的 括號相匹配,即($ 1,$ 2,$ 3 ...)。

-1

嘗試<(("[^"]*"|'[^']*'|[^'">])*)>(\w+)<\/\1>。應該工作,當我回家後,我會測試它。這個想法是,第一個捕獲組找到<>內的內容,並且其嵌套捕獲組可以防止<blah=">"><blah=">匹配。第三個捕獲組(\w+)匹配內部詞。這可能需要根據<tag>content</tag>中可能的格式進行更改。最後,\1回顧第一個捕獲組的內容,這樣你就可以找到合適的結束標記。

編輯:我用perl測試過它,它工作。

+0

本來很高興能得到一個投票的理由。我還沒有機會檢查代碼,所以如果它的錯誤讓我知道,我會確保糾正它。 – 2010-08-13 18:17:11

相關問題