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