Java 仅接受双引号且仅在其后跟反斜杠时接受双引号的正则表达式
如何为接受的字符串生成正则表达式Java 仅接受双引号且仅在其后跟反斜杠时接受双引号的正则表达式,java,regex,Java,Regex,如何为接受的字符串生成正则表达式 仅当双引号跟在反斜杠后面时才使用双引号 如果反斜杠为奇数,则最后一个反斜杠应包含特殊字符或任何文字或任何字母 示例:- 正则表达式不应接受以下内容 """ "\" "\\\" "\"" "\r" "\ " here the single backslash is having space after it so it is should be accepted. "\\" "\\\cloud" "\\\ " "clo$d" "cloud space" 正
"""
"\"
"\\\"
"\""
"\r"
"\ " here the single backslash is having space after it so it is should be accepted.
"\\"
"\\\cloud"
"\\\ "
"clo$d"
"cloud space"
正则表达式应该接受以下内容
"""
"\"
"\\\"
"\""
"\r"
"\ " here the single backslash is having space after it so it is should be accepted.
"\\"
"\\\cloud"
"\\\ "
"clo$d"
"cloud space"
它在Java中看起来确实很难看,因为Java和REGEX都使用了转义反斜杠:
static String REGEX = "([^\"\\\\]|\\\\[^\\\\]+|\\\\\\\\)+";
public static void main(String[] args) {
test("\"");
test("\\");
test("\\\\\\");
System.out.println();
test("\\\"");
test("\\r");
test("\\ ");
test("\\\\\\cloud");
test("\\\\\\ ");
test("clo$d");
test("cloud space");
}
public static void test(String s) {
System.out.println(s + ": " + REGEX + " " + Pattern.matches(REGEX, s));
}
到目前为止,你尝试了什么?你的例子在开始和结束时都包含<代码> <代码>,它们是由正则表达式处理的文本的一部分,例如<代码> > \“代码>代表4个字符,或者2个字符(如果我们跳过<代码> <代码>),或者可能是1个字符(如果我们跳过<代码> < /代码>,并考虑<代码> \/Case>作为<代码> \/COD>文字)如果<代码> 指示字符串文字的开始和结束,那么考虑从示例中移除它们,以避免混淆。而是发布字符串表示的文本。^\[^A-Za-z0-9]$|^\[A-Za-z0-9]$我尝试了这个方法,但没有成功。是否删除了示例字符串?因为在java中,“\n”将产生一个新行,其中as
“\\n”
将产生一个字符串\n
开始和结束双引号是文本的一部分,它不是正则表达式的一部分