2017-05-26 7 views
-1

基本的に、文字列 "TC XX"の正規表現を検索しようとしています。ここで、XXは任意の2桁の数字です。コードの私の部分である:Javaの配列の文字列のインデックスに正規表現を使用する方法

boolean b = DocArray[RTArrayIndex].matches("/TC \\d{2}/"); 

ここDocArray - DocArrayアレイの現在のインデックス - 基本的\t

RTArrayIndexによって分離された別の文字列から導出される文字列の配列。

正規表現 - /TC \\d{2}/

現在のインデックスでの文字列の値が「TC 10」であるが、それでも私は取得しています「B」の値はfalseです。

配列の別のインデックスにも「TC 10の参照ログ」という文字列が含まれていますが、「b」の値もfalseです。

+0

'/'を正規表現から削除する –

答えて

0

あなたはいくつかの問題があります。最初に、あなたの正規表現には、一致させようとしているいくつかの "/"文字が含まれています。これらの両方を削除すると、正規表現が少し改善されます。

boolean b = DocArray[RTArrayIndex].matches("TC \\d{2}"); 

上記の正規表現は、最初の例では評価されますが、2番目の例では評価されません。先頭と末尾の文字を考慮する必要があります。これを行うには、 "。"という記号を使用します。 ""すべての文字のプレースホルダーです。「」は、何回でも表示できます。 "。*"をパターンの先頭と末尾に追加すると、部分文字列 "TC \ d \ d"を含む文字列は正規表現に一致します。

boolean b = DocArray[RTArrayIndex].matches(".*TC \\d{2}.*"); 
0

は初め、そのようなあなたの正規表現の末尾にスラッシュを削除します。

TC \\d{2} 

これはあなたの最初のexempleのために動作します。あなたはTC 10を含むすべての文字列をしたい場合は、初めに、いくつかの部分を追加する必要があり、最後は好き*(「何」を意味する)

最終正規表現は次のようになります。

.*TC \\d{2}.* 
関連する問題