正则表达式

本文关键字:正则表达式 | 更新日期: 2023-09-27 17:53:42

目前正在c#中处理字符串。

的例子:

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

我不能使用空格分隔,因为在某些情况下方括号内会有空格

在这种情况下,我有兴趣获得07.02.2011, 17:24:17CommandExecutionService:290使用regex


基于Ikegami答案的解

@"^(?[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;