2016-03-03 42 views
0

我想用正則表達式得到2個或更多3個單詞。但我很難得到這些單詞而不是全部。正則表達式在一條線上得到2個特定單詞

下面是文字。

3255 2010-02-14 13:17:14 WARN HA在接下來的600秒內禁用警報。策略仍在執行

3256 2010-02-14 13:18:17 WARN UDM自適應篩選配置禁用篩選「13379:HTTP:酷PDF圖像流長度緩衝區溢出漏洞」[00000002-0002-0002-0002-0002-000000013379 ]

正則表達式我用的是

\d{4}-\d{2}-\d{2}.*disabled filter.*$ -> this work but will get the whole line. 

我試圖讓只有日期和文字禁用過濾器,

前。 2016年2月14日13時十八分17秒過濾器「13379:HTTP:酷PDF圖像數據流長度的緩衝區溢出漏洞」

我試圖用管,但它也將獲得另一個日期在另一條線路

[0-9]{4}-[0-9]{2}-[0-9]{2}|disabled filter|"[0-9]{5}.+" 

任何人都可以幫忙嗎?

+0

? Python,Perl,Java等? – Saleem

+0

我用notepad ++和崇高文本在正則表達式上使用find/search。 – Nekro

+0

好的,請在我的文章中看到。我發佈了幾個正則表達式,包括Notepad ++ – Saleem

回答

0

由於缺少語言,因此以下幾種解決方案。

的Python

match = re.search('(?<=disabled filter ")[^"]+', subject, re.IGNORECASE | re.MULTILINE) 
if match: 
    result = match.group() 

的Java

Pattern regex = Pattern.compile("(?<=disabled filter \")[^\"]+", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE); 
Matcher regexMatcher = regex.matcher(subjectString); 
if (regexMatcher.find()) { 
    ResultString = regexMatcher.group(); 
} 

記事本++和崇高文本

(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})(?:.*)(?<=disabled filter ")([^"]+) 

組(1)將有date和集團(2)包含filter您正在使用什麼語言

相關問題