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