2013-02-18 156 views
1

...我已經尋找使用時間正則表達式生成器和檢查器,但我似乎無法得到它的工作...正則表達式

我有這個字符串:hdr("");cr(92);cl(3,"",4,"420720250","random message here");etr();

到目前爲止我的代碼是:

private void strchecker() { 

    Pattern pattern = Pattern.compile("(\\d{9})"); 
    Matcher matcher = pattern.matcher(strLine); 
    if (matcher.find()) { 
     System.out.println(matcher.group(0)); //prints /{item}/ 
    } else { 
     //System.out.println("Match not found"); 
    } 

} 

此代碼正在工作,它可以找到字符串中的9位數字。什麼即時嘗試做它找到正則表達式代碼來搜索「CL(3」或「CL(2」,如果它存在然後發送9位數字的變量,我只是不知道如何找到CL( ?3或2 ..

任何意見

感謝 馬特

+2

您不能只使用'cl \\(\\ d'? – 2013-02-18 03:31:10

+0

優秀!發現cl(但我需要它2或3,但不是1 – user2078674 2013-02-18 03:34:59

+1

'cl \\([23]'?那怎麼樣? – 2013-02-18 03:36:23

回答

0
/cl\([23].*(\d{9})/ 

最後的圓括號將捕獲組1中的9位數。

+0

嗨,不起作用: (有沒有一種方法可以將其轉換爲在JavaScript中工作? – user2078674 2013-02-18 03:47:13

+0

你是什麼意思「它不起作用?」它似乎對我來說工作得很好......''hdr(「」); cr(92); cl(3,「」,4,「420720250」,「random message here」); etr();'。match(/ cl \([23]。*(\ d {9})/)[1]' - 你甚至可以在瀏覽器的控制檯中執行此操作 – 2013-02-18 03:49:20

+0

我使用了精確的代碼,但在eclipse中它說「無效的轉義序列(有效的轉義序列是\ b \ t \ n \ f \ r \」\'\\)「 – user2078674 2013-02-18 03:51:46

0

既然你注意到你正在使用JavaScript,我想你可以做這樣的,因爲你不能回顧後使用;你只需要抓取捕獲組而不是使用完全匹配。

cl\\([23].*?(\\d{9}) 
+0

感謝您的幫助!但我正在使用javascript:p – user2078674 2013-02-18 03:41:27