我需要來標記以下標籤:如何使用正則表達式解析XML類標籤
{TagName attrib1=」value1」 attrib2=」value 3」}.
我想編寫正則表達式來做到這一點,但麻煩的是,屬性值可以包含空格,所以我不能隨空間分裂。
我需要來標記以下標籤:如何使用正則表達式解析XML類標籤
{TagName attrib1=」value1」 attrib2=」value 3」}.
我想編寫正則表達式來做到這一點,但麻煩的是,屬性值可以包含空格,所以我不能隨空間分裂。
不能比這更明確提出:
http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html
請解釋爲什麼你需要正則表達式...
和,你沒有說你的首選語言什麼.. 。
假設的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";
}
但是,再次,不要使用正則表達式!
[你真的不應該嘗試用正則表達式解析XML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454# 1732454)。 – eliah 2010-09-28 14:54:42
你需要一個真正的解析器。你可以使用'indexOf'自己編寫一個(畢竟它只是一個帶有堆棧的狀態機器),但更好的是使用解析器生成器,如Antlr:http://www.antlr.org/ – Anon 2010-09-28 15:06:42
標記不是複合的而且這件事情就像它變得複雜一樣,所以我認爲它可能比完整的Xml更簡單一些...... – Dan 2010-09-28 15:38:03