2016-11-25 4 views
-1

文字列データがあります 正規表現を適用し、データからいくつかのキーワードを除外したいと考えています。 EXのために以下のパターンに正規表現を適用するには?

、文字列データ:

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] 

作業が、そのだけで、特定のパターンを一致させるために、この正規表現を作成する方法amsd2a-BC-001

のようなIDを一致しています。 例: "amsd2a-bc-001-oa2"と一致する正規表現ですが、 "amsd2a-bc-001"には一致しません。私は以下

'amsd2a-BC-001-OA2' として適切な出力を得た .. Javaで言及した文字列と正規表現をチェック

+0

どのようなプログラミング言語の正規表現ですか? –

+0

あなたはどのような環境にいますか?あなたの例は[this tool](http://regexr.com/)で期待どおりに機能します。 – Ouroborus

+0

これは "amsd2a-bc-001-oa2-oa2"のようなもので、問題であれば "amsd2a-bc-001"のようなものではありません。 –

答えて

0

は私が使用するコードです:

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)); 

    } 
} 

私はあなたが何かを欠いていると思う