如何在正则表达式中表示双引号字符(“)?

我需要使用正则表达式来检查字符串是否以双引号字符( " )开头,并以双引号字符结尾。

问题是我不能使用双引号字符,因为它会混淆。 有没有其他方法来代表双引号字符"在正则表达式中,或在字符串中一般?

 String s = """; // ? 

首先,双引号字符在正则表达式中并不特别 – 它只是另一个字符,所以它不需要从正则表达式的角度逃避。

但是,因为java使用双引号来分隔 String常量,如果要在java中创建一个带有双引号的字符串,则必须对它们进行转义。

此代码将测试您的String是否匹配:

 if (str.matches("\".*\"")) { // this string starts and end with a double quote } 

请注意,您不需要在正则表达式中添加输入标记的开始和结束( ^$ ),因为matches()要求匹配整个输入以返回true – 隐含了^$

你需要在“。之类\"之前使用反斜杠。

从这里的文档你可以看到

以反斜杠(\)开头的字符是转义序列,对编译器具有特殊含义。

和“(双引号)是一个escacpe序列

在print语句中遇到转义序列时,编译器会相应地解释它。 例如,如果要在引号内放置引号,则必须在内部引号上使用转义序列\“。要打印句子

她说“你好!” 对我来说。

你会写的

System.out.println(“她对我说”你好!“。);