2013-04-09 66 views
0

我想指定的文本之前收集的所有数据,或者结束它,我曾尝试以下:我想收集以特定文本结尾的所有字符和事件?

.{30}Value_*|.{55}Value2_* 

但是你必须指定你想要多少个字符指定结束文本之前收集的,我只想收集所有的人(注意,即时通讯处理与Python/Perl的正则表达式在这里)

回答

1

试着这么做:

"(.+?)Value_*|(.+?)Value2_*" 

不知道你的数据看起来完全像什么我不能更具体。要分解它:.+匹配一个或多个字符,而?使其非贪婪,因此它不会一次消耗整条线,最后圆括号捕获匹配(至少在Python中)。

+0

伴侣,你是一个传奇! – 2013-04-09 04:55:13

+1

为什么不让'2'选择,然后沟渠交替? – 2013-04-09 05:05:01

1

我错过了什么吗?我不清楚尾随_*(零个或多个下划线)的点是什么,但不会

^(.*)Value 

你需要什么?

+0

嗨@Borodin,是的,它会,尾随的_ *,面对一个Splunk唯一的通配符,你可以将它作为你的搜索查询的一部分,我把它和正则表达式混合在一起,认为它会起作用,所以我感到困惑,但它认为你的工作正常,但它与(。+)有什么不同? 谢谢 – 2013-04-09 06:18:45

+0

@IAML:那么你想要的是'^(。*)Value2?_'。没有必要匹配尾随字符。 '。+'需要“一个或多个”,而'。*'需要“零个或多个”,所以在这种情况下,两者大部分是等价的。您可以省略'^'锚点,因为默认情况下,搜索将从字符串开始处开始,'.'将匹配任何内容,但它会更好地描述该模式的目的。 – Borodin 2013-04-09 08:13:16

相关问题