我有一个超过一百万行的文件。更有效的正则表达式还是替代方法?
{<uri::rdfserver#null> <uri::d41d8cd98f00b204e9800998ecf8427e> <uri::TickerDailyPriceVolume> "693702"^^<xsd:long>}
{<uri::rdfserver#null> <uri::d41d8cd98f00b204e9800998ecf8427e> <uri::TickerDailyPriceId> <uri::20fb8f7d-30ef-dd11-a78d-001f29e570a8>}
每一行都是一条语句。
struct Statement
string C;
string S;
string P;
string O;
string T;
目前我使用一个while循环的TextReader和解析使用正则表达式的每一行:
Regex lineParse = new Regex(@"[^<|\""]*\w[^>\""]*", RegexOptions.Singleline | RegexOptions.Compiled);
这需要很长一段时间做这个分析,我希望有人能我更有效的解析策略。
有些线路有5分配衬有的4.这里是每行是如何解析:
{<uri::rdfserver#null> <uri::d41d8cd98f00b204e9800998ecf8427e> <uri::TickerDailyPriceVolume> "693702"^^<xsd:long>}
Statement()
C = uri::rdfserver#null
S = uri::d41d8cd98f00b204e9800998ecf8427e
P = uri::TickerDailyPriceVolume
O = 693702
T = xsd:long
{<uri::rdfserver#null> <uri::d41d8cd98f00b204e9800998ecf8427e> <uri::TickerDailyPriceId> <uri::20fb8f7d-30ef-dd11-a78d-001f29e570a8>}
Statement()
C = uri::rdfserver#null
S = uri::d41d8cd98f00b204e9800998ecf8427e
P = uri::TickerDailyPriceId
O = uri::20fb8f7d-30ef-dd11-a78d-001f29e570a8
从注释附加信息:“可怜的表现我所看到的实际上是因为条件断点我没有任何改变,但是如果有人有任何改进的想法,我会感兴趣的“-Eric Schoonover
我看到的糟糕的性能实际上是由于我在代码中设置了条件断点。没有这个断点,一切都很快。如果有人有任何改进的想法,我会感兴趣:) – 2009-02-04 23:33:03
你可能会添加该信息到你的文章,所以人们知道你不再寻找速度。 – 2009-02-04 23:38:16
我仍然在寻找速度,只是我发布的正则表达式不一定像我想的那样慢。 – 2009-02-05 00:10:19