2013-04-09 21 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

相關問題