我需要使用正则表达式来检查字符串是否以双引号字符 ( "
)开头并以双引号字符结尾。
问题是我不能使用双引号字符,因为它会混淆。有没有其他方法可以在正则表达式或一般字符串中表示双引号字符?"
String s = """; // ?
首先,双引号字符在 regex 中没有什么特别之处——它只是另一个字符,所以从 regex 的角度来看它不需要转义。
但是,因为 Java 使用双引号来分隔String 常量,所以如果要在 Java 中创建带有双引号的字符串,则必须对其进行转义。
此代码将测试您的字符串是否匹配:
if (str.matches("\".*\"")) {
// this string starts and end with a double quote
}
请注意,您不需要在正则表达式中添加输入标记 (和) 的开始和结束,因为需要匹配整个输入以返回 true -并且是隐含的。^
$
matches()
^
$
你需要在“。”之前使用反斜杠\"
从这里的文档中,您可以看到
以反斜杠 (\) 开头的字符是转义序列,对编译器具有特殊意义。
和 " (双引号) 是一个转义序列
当在 print 语句中遇到转义序列时,编译器会相应地解释它。例如,如果要将引号放在引号内,则必须在内部引号上使用转义序列 \"。要打印句子
她说:“你好!” 大部头书。
你会写
System.out.println("她对我说\"你好!\"。");