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

2022-09-03 09:02:41

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

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

String s = """;    // ?

答案 1

首先,双引号字符在正则表达式中并不是什么特别之处 - 它只是另一个字符,因此它不需要从正则表达式的角度转义。

但是,由于 Java 使用双引号来分隔 String 常量,因此如果要在 Java 中创建包含双引号的字符串,则必须对它们进行转义。

此代码将测试您的字符串是否匹配:

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

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


答案 2

您需要在“.喜欢\"

这里的文档中,您可以看到

前面带有反斜杠 (\ ) 的字符是转义序列,对编译器有特殊意义。

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

当在 print 语句中遇到转义序列时,编译器会相应地对其进行解释。例如,如果要在引号内加上引号,则必须在内部引号上使用转义序列 \”。打印句子

她对我说“你好!”。

你会写

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