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