正则表达式
本文关键字:正则表达式 | 更新日期: 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:17
和CommandExecutionService: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;