如何在正则表达式中表示双引号字符(“)?
我需要使用正则表达式来检查字符串是否以双引号字符( "
)开头,并以双引号字符结尾。
问题是我不能使用双引号字符,因为它会混淆。 有没有其他方法来代表双引号字符"
在正则表达式中,或在字符串中一般?
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(“她对我说”你好!“。);