我有一個像這樣的字符串<name>sekar</name>
。我想分割這個字符串(我正在使用Perl),只取出sekar
,並將其推入數組中,同時留下其他內容。分割一個變量並放入一個數組
我知道如何推入陣列,但與分裂部分碰撞。
有沒有人有這樣做的想法?
我有一個像這樣的字符串<name>sekar</name>
。我想分割這個字符串(我正在使用Perl),只取出sekar
,並將其推入數組中,同時留下其他內容。分割一個變量並放入一個數組
我知道如何推入陣列,但與分裂部分碰撞。
有沒有人有這樣做的想法?
push @output, $1 if m|<name>(\w*)</name>|;
謝謝hlynur 它完美的工作 – 2010-08-13 12:27:27
嘗試這種情況:
my($name) = $string =~ m|<name>(.*)</name>|;
來自的perldoc perlop得到:
如果未使用的 「/ G」 選項, 「M //」 在列表上下文返回一個 列表包括以下各項的子表達式與模式中的 括號相匹配,即($ 1,$ 2,$ 3 ...)。
嘗試<(("[^"]*"|'[^']*'|[^'">])*)>(\w+)<\/\1>
。應該工作,當我回家後,我會測試它。這個想法是,第一個捕獲組找到<>
內的內容,並且其嵌套捕獲組可以防止<blah=">">
與<blah=">
匹配。第三個捕獲組(\w+)
匹配內部詞。這可能需要根據<tag>content</tag>
中可能的格式進行更改。最後,\1
回顧第一個捕獲組的內容,這樣你就可以找到合適的結束標記。
編輯:我用perl測試過它,它工作。
本來很高興能得到一個投票的理由。我還沒有機會檢查代碼,所以如果它的錯誤讓我知道,我會確保糾正它。 – 2010-08-13 18:17:11
@middaparka,你的網址被截斷,但沒有鏈接:) – Benjol 2010-08-13 11:41:37
解析XML,使用和XML解析器。要解析HTML,請使用HTML解析器。 – 2010-08-13 13:07:47