2010-08-13 66 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

相关问题