簡體   English   中英

正則表達式

[英]Regular expression for this

我有一個文本文件,我想用正則表達式解析它。 如何在下一個“Entry#”之前將“Entry#”之間的文本塊提取到空行

GmtOffset=120
GmtExistFlag=0
LocalTimeFlag=0
Entry #1
EventType=1
FieldType=256
FieldValue=12-05-2010, 11:00:00
FieldType=512
FieldValue=12-05-2010, 11:30:00
FieldType=1
FieldValue(3)=Jku

Entry #2
EventType=1
FieldType=256
FieldValue=15-05-2010, 06:00:00
FieldType=512
FieldValue=15-05-2010, 06:30:00
FieldType=1
FieldValue(3)=Lsh
FieldType=1024
FieldValue=15-05-2010, 05:45:00
FieldType=65536
FieldValue=1

Entry #3
EventType=4
FieldType=1
FieldValue(4)=STYL
FieldType=1024
FieldValue=13-05-2010, 11:00:00
FieldType=65536
FieldValue=1
FieldType=2097152
FieldValue=2
FieldType=8388608
FieldValue=-2147483648

如何 ?

謝謝

通過Entry # 分割將為您提供所需的內容。 這里沒有必要使用正則表達式。 只需拆分並刪除末尾的空行:

var blocks = text.Split("Entry #");
foreach (var block in blocks)
{
    // removing the line with the entry number
    block = block.Substring(block.IndexOf(Environment.NewLine));

    // removing the empty lines
    block = block.Trim('\n', '\r');

    // add your processing here
}

雖然我同意@ie的解決方案,但我認為該解決方案將忽略Entry #后面的數字問題。 在這種情況下,Regex.Split將起作用。

string[]  matches = Regex.Split(inputStrng, @"Entry #\d+\s+");
foreach (string match in matches)
{     
    Console.WriteLine(match);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM