^文字列の開始を意味します。文字列内の任意の場所で検索する必要があるため、削除する必要があります。
ああ、使わないで、代わりmatchesに使ってください。文字列全体がパターンに一致するかどうかをチェックし、文字列内のパターンを探します。findmatchesfind
String code = "class Demo{public static void main(String[] args) {System.out.println(\"ABC\");}}";
Pattern p = Pattern.compile("[{]");
Matcher m = p.matcher(code);
System.out.println(m.find());
ただし、contains("{")Rohit が述べたように、より単純になります。
String code = "class Demo{public static void main(String[] args) {System.out.println(\"ABC\");}}";
System.out.println(code.contains("{"));
置換を行いたい場合Matcherは、replaceAll機能がありますが、そうStringです。これにより、すべての前に改行が追加されます{: (\\{エスケープの代替方法です{)
String code = "class Demo{public static void main(String[] args) {System.out.println(\"ABC\");}}";
System.out.println(code.replaceAll("\\{", "\n{"));
これであなたがどこに向かっているのかが正しければ、正規表現でコードのインデントを行うことはできません。これは増分/再帰的であり、正規表現では (うまく) 機能しません。これを行うには、文字列を手動で反復処理する必要があります。