我有一個超過一百萬行的文件。更有效的正則表達式還是替代方法?
{<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