私は、ファイルの拡張子と一致するようにJavaのString.matches(正規表現)メソッドの正規表現を作成しようとしています。私は試しました。*。extしかし、これはextで終わるファイルと一致しません。 私は.*\.ext
を試しました。これは正規表現テスターで動作しましたが、Eclipseでは無効なエスケープシーケンスエラーが発生しています。 誰も私にこれを手伝ってもらえますか? Eclipseで おかげJava regex help
1
A
答えて
2
(Javaは)、正規表現文字列は「エスケープ」する必要があります
".*\\.ext"
0
は、ゼロまたはそれ以上の非ドットと、文字列の末尾に続くドットにマッチ:
\.[^.]*$
それはJavaの文字列リテラルだ場合、あなたはバックスラッシュをエスケープする必要があること
注:
Pattern p = Pattern.compile("\\.[^.]*$");
2
4
はここであなたに使用する正規表現を示したテストプログラムです:
public class Demo {
public static void main(String[] args) {
String re = "^.*\\.ext$";
String [] strings = new String[] {
"file.ext", ".ext",
"file.text", "file.ext2",
"ext"
};
for (String str : strings) {
System.out.println (str + " matches('" + re + "') is " +
(str.matches (re) ? "true" : "false"));
}
}
}
、ここでは、出力(わずかに「美」のために編集)です:
file.ext matches('^.*\.ext$') is true
.ext matches('^.*\.ext$') is true
file.text matches('^.*\.ext$') is false
file.ext2 matches('^.*\.ext$') is false
ext matches('^.*\.ext$') is false
しかし、あなたが本当に必要はありません。それは簡単です
str.endsWith (".ext")
この特定の仕事の場合も同様です。
あなたは比較はWindows用(...、.EXT、.EXT)大文字と小文字を区別する必要がある場合は、あなたが使用することができます。
str.toLowerCase().endsWith(".ext")
+0
私の答えよりもはるかに詳細。 +1 – VonC
関連する問題
- 1. regex help + java
- 2. java regex help
- 3. Regex expression help java
- 4. Regex help
- 5. javascript regex replace help!
- 6. Regex help ^。* assets \ /.* \/original。* \。* $
- 7. Regex Help、por favor
- 8. .NET RegEx help
- 9. C#Regex Help
- 10. Regex help(php)
- 11. jQuery regex help
- 12. Python Regex Help
- 13. Java JTextPane italics help
- 14. MouseListener Help Java
- 15. Help !!! RegEx.Replace
- 16. java regex line
- 17. Java Regex compress String
- 18. Java regex、jsoup
- 19. Java Regex Prefix Suffix
- 20. Java Regex Subexpressions
- 21. JAVA - Regex Issue
- 22. REGEX - group - JAVA
おかげで、完全に働きました。 –
あなたの答えは(これは基準です)助けとなりました。簡単に疲れた私たちの方々にとってはより簡潔ですので、ちょっと後で+1してください:-) – paxdiablo