我需要使用正则表达式,检查一个字符串以a开头的双引号字符("),并用结束双引号太多字符.
问题是我不能使用双引号字符,因为它会混淆.有没有其他方法来表示正则表达式中的双引号字符",或者一般表示字符串?
String s = """; // ?
Run Code Online (Sandbox Code Playgroud)
Boh*_*ian 24
首先,双引号字符在正则表达式中并不特别 - 它只是另一个字符,所以它不需要从正则表达式的角度逃避.
但是,因为java使用双引号来分隔 String常量,如果要在java中创建一个带有双引号的字符串,则必须对它们进行转义.
此代码将测试您的String是否匹配:
if (str.matches("\".*\"")) {
// this string starts and end with a double quote
}
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要在正则表达式中添加输入标记(^和$)的开始和结束,因为matches()要求整个输入匹配以返回true - ^并且$是隐含的.