2016-11-25 24 views
-1

我有一些字符串數據, 我想申請一個正則表達式,並從數據中篩選出一些關鍵字。如何應用以下模式的正則表達式?

對於離,字符串數據:

new id for MS is amsd2a-bc-001-oa2 please provide more input etc.. 

現在,我必須從上述字符串中提取的ID amsd2a-BC-001-OA2

我用正則表達式(下面提到)從數據中提取ID。

[a-zA-Z0-9]{3,6}-bc-[0-9]{3}-[A-Za-z]{2}[0-9] 

上述正則表達式是工作,但其匹配的ID喜歡amsd2a-BC-001

如何使這個正則表達式匹配只針對特定的模式。 例如:RegEx與「amsd2a-bc-001-oa2」匹配,但不匹配「amsd2a-bc-001」。

+0

什麼編程語言正則表達式是這樣的? –

+0

你在什麼環境?您的示例在[此工具](http://regexr.com/)中按預期工作。 – Ouroborus

+0

如果這是一個問題,它會捕獲「amsd2a-bc-001-oa2-oa2」之類的東西,而不是像「amsd2a-bc-001」。 –

回答

0

我檢查了在Java中提到的字符串和正則表達式。 我爲 'amsd2a-BC-001-OA 2'

下面是我使用的代碼正確的輸出:

import java.util.regex.Matcher; 
    import java.util.regex.Pattern; 

    class MyClass { 
    public static void main(String args[]) { 

    // String to be scanned 
    String line = "nnew id for MS is amsd2a-bc-001-oa2 please provide more input etc"; 
    String pattern = "[a-zA-Z0-9]{3,6}-bc-[0-9]{3}-[A-Za-z]{2}[0-9]"; 


    // Create a Pattern object 
    Pattern r = Pattern.compile(pattern); 

    // Now create matcher object. 
    Matcher m = r.matcher(line); 
    m.find(); 
    System.out.println("Found value: " + m.group(0)); 

    } 
} 

我想你錯過了什麼