Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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
Javascript 如何查找子字符串的匹配项="\\r";在字符串中=";这是一个“rtest\\n\\r字符串”;在java中使用模式和匹配器_Javascript_Java_Spring_String_Sorting - Fatal编程技术网

Javascript 如何查找子字符串的匹配项="\\r";在字符串中=";这是一个“rtest\\n\\r字符串”;在java中使用模式和匹配器

Javascript 如何查找子字符串的匹配项="\\r";在字符串中=";这是一个“rtest\\n\\r字符串”;在java中使用模式和匹配器,javascript,java,spring,string,sorting,Javascript,Java,Spring,String,Sorting,如何使用模式和匹配器在java中查找字符串=“这是一个\\rtest\n\r字符串”中出现的子字符串=“\r” 当我使用 Pattern p4=Pattern.compile("\\r",Pattern.LITERAL); 即使这样,这也不起作用 当我有string=“这是一个\\rtest\\n\\r字符串”时,它工作得很好。它有正确的计数,即..2 但是对于string=“这是一个\rtest\\\n\\\r字符串”。 它给了我不正确的计数=1 要调用的函数: static int cou

如何使用模式和匹配器在java中查找字符串=“这是一个\\rtest\n\r字符串”中出现的子字符串=“\r”

当我使用

Pattern p4=Pattern.compile("\\r",Pattern.LITERAL);
即使这样,这也不起作用

当我有string=“这是一个\\rtest\\n\\r字符串”时,它工作得很好。它有正确的计数,即..2

但是对于
string=“这是一个\rtest\\\n\\\r字符串”
。 它给了我不正确的计数=1

要调用的函数:

static int countMatches(Pattern pattern, String string)
{

    Matcher matcher=pattern.matcher(string);
    int count=0;
    int pos=0;
    while(matcher.find(pos))

    {
        count++;
        pos=matcher.start()+1;

    }

    return count;

}

问题是字符串
“这是一个\\\rtest\\n\\r字符串”
实际上不包含两个出现的
“\\r”
。编译器将第一次出现的字符解释为两个字符
'\\'
(这是一个单独的反铲
'\'
)和
'\r'
(这是不可打印的)


这对于
“这是一个\rtest\\n\\r字符串”
或任何其他非偶数个反斜杠的字符串也是如此,如果要转义字符,可以使用
\
。所以在你的字符串中

String string="This is a \\\rtest \\n\\r string";
在此字符串中,
\\\rtest
部分使用双反斜杠对
\r
部分进行转义

\r
在字符串库中有意义。 你可以阅读这个问题:

因此,在您的示例中\r无法在变量字符串中看到。如果您使用此选项更改字符串,则可以得到结果为2

String string="This is a \\\rtest \\n\\r string";
在字符串的第二部分
\\n\\r
中,使用
\
保存
\n
,使用
\
保存
\r


在短时间内,更改字符串以正确获取结果。如果在anything之前写入双退格,则将在char之后转义。

您需要通过复制iTunes选项来转义退格,并使用代码格式发布字符串(
{}
编辑器选项上的图标)。否则我们就不知道字符串中有多少个
\
,以及您到底想找到什么。