2016-10-14 4 views
-1

regexを使用して検出し、パスにスラッシュを入れる方法。 番号正規表現を使用してスラッシュを一致させる方法

例 文字列str =「/ urpath/23243 /のImagePath/344_licensecode /」でまた、私はパスがスラッシュと数字の一致であることを確認するために正規表現を使用します。 フォーマット一致はこのようにしなければなりません "/ 23243 /"

アイデアみたいですか?あなたは\を使用して特殊文字/をエスケープする必要が

おかげ

+1

sorry.just例です。編集された –

+0

あなたの質問に対する回答が見つかりました。 **あなたは**回答を受け入れることもできますか?([回答を受け入れる:どのように動くのですか?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)) 。これはStackOverflowの本当に重要な部分です。ありがとうございます。 – Zabuza

答えて

2

。しかし、\もJavaで使用されるエスケープ文字ですが、シンボル自体をRegexに渡したいので、Regexのためにエスケープします。あなたは\\とエスケープ記号をエスケープすることによってそうする。したがって、合計でスラッシュは\\/になります。

使用このスニペット:

String input = ... 
Pattern pattern = Pattern.compile("\\/23243\\/"); 
Matcher matcher = pattern.match(input); 
if (matcher.find()) { 
    System.out.println("Does match!"); 
} else { 
    System.out.println("Does not match!"); 
} 

あなたはregex101で正規表現自体を試すことができます:regex101/RkheRs

+0

お返事ありがとうございます。パターンはどのようにパターン番号23243の代わりに一致するのですか? –

+0

このパターンパターンへのパターン変更はPattern.compile( "\\/[^ 0-9] \\ /"); ですが、エラーをスローします –

+0

数字は\ d +です。スラッシュは特殊文字ではないので、あなたはそれをエスケープする必要はありません。おそらくJavaで "/ \\ d + /"が必要です – mgaert

0

私は私のanswer.Thanksが

List<String> listArray = new ArrayList<String>(); 
 
        listArray.add(file.getCanonicalPath()); 
 
        
 
       //Regular expression in Java to check if String is number or not 
 
       Pattern pattern = Pattern.compile("/\\d+/"); 
 
       for(String path: listArray){ 
 

 
         //Match patter for numbers path 
 
         Matcher matcher = pattern.matcher(path); 
 
         if (matcher.find()) { 
 
          System.out.println("Does match!"+ path); 
 
         }else{ 
 
          System.out.println("Does Not match!"); 
 
         } 
 

 

 

 
        }

をMgaertが判明
関連する問題