0

遇到语法问题,我是使用正则表达式的新手。我正在用java编码。

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

例如:Doesn't'workCan''t

我有一个if声明,我希望它评估true是否有多个撇号:

if(string.matches("\\'")){ 
.
.
}

任何帮助都会很棒!

4

3 回答 3

4

您不需要正则表达式。由于您只寻找不止一次出现,您可以使用String#indexOf(String)String#lastIndexOf(String)方法:

if (str.contains("'") && str.indexOf("'") != str.lastIndexOf("'")) {
    // There are more than one apostrophes
} 
于 2013-09-15T10:17:18.337 回答
2

我正在尝试使用 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(".*'.*'.*")
于 2013-09-15T10:17:09.180 回答
1
if(string.matches(".*\\\'.*\\\'.*")){ . . }
于 2013-09-15T10:16:47.927 回答