Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在正则表达式中表示双引号字符?_Java_Regex_Char - Fatal编程技术网

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

Java 如何在正则表达式中表示双引号字符?,java,regex,char,Java,Regex,Char,我需要使用正则表达式来检查字符串是否以双引号字符(“)开头,并以双引号字符结尾 问题是我不能使用双引号字符,因为它会混淆。有没有其他方法可以在正则表达式或字符串中表示双引号字符“ String s = """; // ? 在“.like\” 从医生那里你可以看到 前跟反斜杠(\)的字符是转义序列,具有 对编译器有特殊意义 和“(双引号)是一个escacpe序列 当在print语句中遇到转义序列时,编译器会相应地对其进行解释。例如,如果要在引号中加引号,则必须在内部引号中使用转义序列“\”

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

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

String s = """;    // ?

在“.like
\”

从医生那里你可以看到

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

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

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

她对我说“你好!”

你会写信吗

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


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

但是,由于java使用双引号来分隔字符串常量,如果您想在java中创建一个包含双引号的字符串,必须对其进行转义

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

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

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

可能重复或…匹配引号内内容的有趣方法是
“[^”]*”
(或者,作为转义的java字符串,
“\”[^\]*\”
)。不可能流血;)