Javascript 如何查找子字符串的匹配项="\\r";在字符串中=";这是一个“rtest\\n\\r字符串”;在java中使用模式和匹配器
如何使用模式和匹配器在java中查找字符串=“这是一个\\rtest\n\r字符串”中出现的子字符串=“\r” 当我使用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
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选项来转义退格,并使用代码格式发布字符串(
{}
编辑器选项上的图标)。否则我们就不知道字符串中有多少个\
,以及您到底想找到什么。