Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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_String_Multiple Matches - Fatal编程技术网

Java 使用正则表达式检查字符串中重复或分散的字符是否多次出现

Java 使用正则表达式检查字符串中重复或分散的字符是否多次出现,java,regex,string,multiple-matches,Java,Regex,String,Multiple Matches,由于语法有问题,我不熟悉使用正则表达式。我正在用java编写代码 我需要检查撇号在字符串中是否使用了多次。多个撇号可以是连续的,也可以分散在字符串上 例如:不起作用或不能 我有一个if语句,如果有多个撇号,我希望它的值为true: if(string.matches("\\'")){ . . } 任何帮助都会很好 if(string.matches(".*\\\'.*\\\'.*")){ . . } 我正在尝试使用string.matches 我知道你不需要它。你可以这样做: String

由于语法有问题,我不熟悉使用正则表达式。我正在用java编写代码

我需要检查撇号在字符串中是否使用了多次。多个撇号可以是连续的,也可以分散在字符串上

例如:不起作用或不能

我有一个if语句,如果有多个撇号,我希望它的值为true:

if(string.matches("\\'")){ 
.
.
}
任何帮助都会很好

if(string.matches(".*\\\'.*\\\'.*")){ . . }
我正在尝试使用string.matches

我知道你不需要它。你可以这样做:

String s = "Doesn't'work or Can''t";

int lengthWithApostrophes = s.length();
int lengthWithoutApostrophes = s.replace("'", "").length();

if(lengthWithApostrophes - lengthWithoutApostrophes >= 2) {
    // Two or more apostrophes
}
如果你想用正则表达式,这是我想到的第一件事

s.matches(".*'.*'.*")

你不需要正则表达式。由于您只查找多个事件,因此可以使用以下方法:


向我们展示你是如何使用它的?文档中没有语法示例吗?它不起作用。matches方法检查所有字符串,因此您的正则表达式检查字符串是否以撇号开头并以撇号结尾。不需要转义。只需删除所有\。它会起作用,但有太多的转义,最终的。*是extraneous@pguardiario:final.*不是多余的。记住,这是Java中的String.matches,它将测试整个字符串是否与正则表达式匹配。注意:在使用indexOfString时,您指向了indexOfint:@BackSlash Fixed。谢谢:这个怎么样?这让我想尖叫着跑。@pguardiario我只在真正需要的地方使用正则表达式。如果你想在这个解决方案上大喊大叫,那么你可能会在看到的每个编程解决方案上大喊大叫。@pguardiario。也许我应该更了解很多事情。但相信我,我知道我在这件事上说的是什么。我有一种感觉,你对你的正则表达式解决方案被否决感到沮丧,虽然我不是那个,但让我告诉你,你的正则表达式在Java中不起作用。Java正则表达式不需要分隔符。@Juliana不客气!如果你认为这是最好的答案,别忘了你怎么能认为这样更好?完成一项简单任务的代码太多了。@pguardiario您是否用她给我们的示例字符串,使用matches方法,尝试过您的正则表达式?它不起作用。对不起,您的最终正则表达式很好,但结尾。*是不必要的。@pguardiario好的,但我说的是您的答案,您测试过了吗?
if (str.contains("'") && str.indexOf("'") != str.lastIndexOf("'")) {
    // There are more than one apostrophes
}