^表示字符串的开头。它应该被删除,因为您想在字符串中的任何位置找到它。
哦,不要使用matches,find而是使用。matches检查整个字符串是否与模式匹配,在字符串中find查找模式。
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{"));
现在,如果我在您的使用方向上是正确的,那么您将无法使用正则表达式进行代码缩进。它是增量/递归的,在正则表达式中不起作用(很好)。您需要手动遍历字符串来执行此操作。