私はJavaで正規表現を使用することにあまり慣れていません。私は文字列this/is/a/file!/path
regex in java、特定の文字列パターンを検索しますか?
を持っている場合は は今substring
とindexOf
と私は/
と!
わたってるしき登場する名前のファイルを見つけることができますが、私はこのようなタスクは、正規表現を使用してはるかに簡単でなければならないかなり確信しています。
正規表現を使用した例がありますか?
私はJavaで正規表現を使用することにあまり慣れていません。私は文字列this/is/a/file!/path
regex in java、特定の文字列パターンを検索しますか?
を持っている場合は は今substring
とindexOf
と私は/
と!
わたってるしき登場する名前のファイルを見つけることができますが、私はこのようなタスクは、正規表現を使用してはるかに簡単でなければならないかなり確信しています。
正規表現を使用した例がありますか?
もう1つの方法は、パターンとマッチャーを使用することです。 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Matcher.html
パターン::Javaでhttp://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
正規表現:あなたが作成することができますhttp://docs.oracle.com/javase/tutorial/essential/regex/
Javaでそれらを使用する最も簡単な方法は、String.matches
方法を使用することです:
boolean matches = "abc".matches("[a-z]+");
true
をもたらすであろう。
これを行う2番目の方法は、特定の正規表現パターンを何度も使用する必要がある場合に便利です。あなたはそれをコンパイルし、それを再利用することができます。これを行う必要があります...そして、あなたは第一グループを見つけるために、整合を使用することができます
Pattern pattern = Pattern.compile("[a-z]+");
Matcher matcher = pattern.matcher("abc");
boolean matches = matcher.matches();
String.matchesは文字列全体にのみ一致します。問題は、パスの一致する部分文字列を抽出することです。 –
気にいら.*/([^!]*)!.*
として
私はこのソリューションをテストしませんでした...
ここでは、
のMatcherを見てグループや、より複雑な操作
Pattern pattern = Pattern.compile(yourRegex);
Matcher matcher = pattern.matcher(yourText);
while(matcher.find()) {
System.out.println(matcher.group(1));
}
を使用することができますPatternオブジェクトを正規表現で表現し、それからpaまでのマッチャーオブジェクトを作成するrseあなたの文字列。
String regex = ".*/(.*)!";
Pattern p = Pattern.compile (regex);
Matcher m = p.matcher(StringToBeMatched);
if (m.find()) {
String filename = m.group (1);
}
このソリューションはテストしていませんでしたか?コードは正しいですが、正規表現はコンパイルされません。 –
正規表現を修正しました –
この問題では、最も簡単で簡単な方法です。文字列の 'file'部分から何かを読んでいないかぎり、正規表現は考えないでください。 – adarshr
Googleはあなたの友人です。 http://adocs.oracle.com/javase/tutorial/essential/regex/ –
@adarshr、ご意見ありがとうございます;) – Johnydep