[英]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:17
和CommandExecutionService: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.