如何使用正则表达式解析类似Xml的标记

时间:2010-09-28 14:53:36

标签: regex split tokenize

我需要标记以下标记:

{TagName attrib1=”value1” attrib2=”value 3”}.

我想写正则表达式,但问题是属性值可以包含空格,所以我不能只用空格分割。

1 个答案:

答案 0 :(得分:1)

不能比这更清楚:

http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

请解释为什么你需要regexp ......

而且,你没有说出你喜欢的语言......

假设perl:

$str = "{TagName attrib1=\"value1\" attrib2=\"value 3\"}";

if ($str =~ m/{(\w+)\s+(\w+)="(.*?)"\s+(\w+)="(.*?)"/)
{
    print "tagname: $1\n";
    print "attrib: $2\n";
    print "value: $3\n";
    print "attrib: $4\n";
    print "value: $5\n";
}

但是,请不要使用正则表达式!!