可以使用regex查找此模式吗?

可以使用regex查找此模式吗?,regex,Regex,我需要解析日志文件中的大量数据,理想情况下,我可以将文件拆分为一个列表,其中列表中的每个条目都是日志中的单个条目 每次创建日志条目时,都会使用以下模式的字符串作为前缀: 4404:21:42:07.433-在这一点之后,可能会出现任何内容,包括新行字符等。但是,只要前缀重复表示新的日志条目 4404可以是任何数字,但之后始终跟有一个:。 21:42:07.433是21小时42分7秒433毫秒 我对正则表达式知之甚少,但是否可以使用它来识别这种模式 我想这样做会有用的 *:[0-24]:[0:60

我需要解析日志文件中的大量数据,理想情况下,我可以将文件拆分为一个列表,其中列表中的每个条目都是日志中的单个条目

每次创建日志条目时,都会使用以下模式的字符串作为前缀:

4404:21:42:07.433-在这一点之后,可能会出现任何内容,包括新行字符等。但是,只要前缀重复表示新的日志条目

4404可以是任何数字,但之后始终跟有一个:。 21:42:07.433是21小时42分7秒433毫秒

我对正则表达式知之甚少,但是否可以使用它来识别这种模式

我想这样做会有用的

*:[0-24]:[0:60]:[0:60]。[0-1000]-*

然而,它只是抛出了一个例外,我担心我根本没有走上正确的轨道

List<string> split_content = Regex.Matches(file_content, @"*: [0-24]:[0:60]:[0:60].[0-1000] - *").Cast<Match>().Select(m => m.Value).ToList();

以下表达式将根据您的模式拆分字符串:

\d+: \d{2}:\d{2}:\d{2}\.\d{3}

如果定界字符串总是以一行开头,则在开头添加^。使用正则表达式捕获日志块会更加复杂,我建议使用正则表达式进行拆分。如果您的日志内容一次全部存储在内存中,则进行拆分。

您拥有的更多是一种伪模式。既不是regex,也不是glob。请提供一个非常简洁的日志文件示例。特别是正则表达式处理字符,并且不理解数字的概念:您不能说介于0和24之间的数字,您需要说一些类似字符串的内容,其第一个字符介于“0”和“2”之间,第二个字符介于“0”和“9”之间。您当前的[0-24]被解析为介于0和2之间的字符,或4Try?首先,您是如何读取日志的?一行一行,或者你能把它全部载入内存吗?