如何在java中为带括号的String编写正则表达式?

时间:2015-03-27 13:29:37

标签: java regex

我正在尝试解析java中的C语言代码,我遇到了像

这样的语句
printf("hello world");

我正在使用Pattern.compile("printf/(/".*/"/)");,但收到错误声明

  

/(不是有效的转义序列

请给出解决这种情况的方法。

1 个答案:

答案 0 :(得分:2)

要转义字符,您需要使用反斜杠而不是正斜杠。由于(是一个特殊的元字符,因此您也需要将其转义。

Pattern.compile("printf\\(\".*?\"\\);");

示例:

String value = "printf(\"hello world\");";
System.out.println(value.matches("printf\\(\".*?\"\\);"));
//=> true