簡體   English   中英

正則表達式

[英]Regular Expression

目前正在使用C#中的字符串。

例:

07.02.2011 17:24:17 [/sbc_DIG] [ERROR] CommandExecutionService:290 - Error during command execution

我無法使用空格分割,因為在某些情況下,squarebracet中會有空格

在這種情況下,我有興趣使用正則表達式獲取07.02.2011 CommandExecutionService:290 17:24:17CommandExecutionService:290


解決方案基於池上的回答

@"^(?[0-9.]+) (?[0-9:]+) [.?] [.?] (?[a-zA-Z0-9:]+)\s";

為什么不拆分前四個字段的空格然后取最后一個字段的第一個字?

看起來您的數據結構如下:

<date>(space)<time>(space)<URL?>(space)<severity/log level>(space)<message>

因此,只需通過拆分空格將其拆分為這些組件:

string[] fields = myString.split(" ", 4);

使用Perl語法,但正則表達式模式應該在C#中相同,

my ($date, $time, $pos) = $line =~ /
   ^
   (\S+) \s+
   (\S+) \s+
   \[ [^\]]* \] \s+
   \[ [^\]]* \] \s+
   (\S+)
/x;

暫無
暫無

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

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