Java是否部分匹配

时间:2013-02-14 03:26:03

标签: java selenium

我已经进入Selenium WebDriver,仍然找到最令人困惑的例子。

我需要能够读取一个字符串(成功)运行一个条件,询问是否存在特定文本。

为了这篇文章。

String oneoff = "Jeff is old"

我需要匹配Jeff,看下面的代码,只要Jeff存在于字符串中,我想返回true。如果杰夫不存在,那么我会检查哦说50-75其他名字。但是,字符串可能包含其名称和无法控制的其他文本。所以我必须进行部分匹配。

问题1.我是否已经搞砸了,并且必须以我所见过的那种疯狂格式构建每个正则表达式,或者我错过了一些明显的东西?

问题2.有人为了我的理智,请告诉我与杰夫匹配的正确方法,以及在杰夫这个名字之前和之后发短信的可能性。

谢谢!

String oneoff = driver.findElement(By.id("id_one_off_byline"))
        .getAttribute("value");
System.out.println("One Off is:" + oneoff);
if (oneoff.matches("Jeff")) {
    System.out.println("It is Jeff");
} else {
    System.out.println("it is not jeff");
}

这只是代码的功能部分,

3 个答案:

答案 0 :(得分:4)

  

因为Jeff存在于字符串中,我想返回true

然后你可能应该用

进行测试
if (oneoff.contains("Jeff")) 

由于matches使用正则表达式作为参数,因此if (oneoff.matches("Jeff"))仅在oneoff = "Jeff"时才会返回true。

答案 1 :(得分:1)

您不需要对您提供的代码使用match()。而是使用oneoff.equals(“String”)进行字符串匹配。 Match()更适用于正则表达式。如果要返回true,也可以使用oneoff.contains(“String”),即使该字符串仅作为目标字符串的子集存在。

答案 2 :(得分:1)

if (oneoff.contains("Jeff")) {
    System.out.println("It is Jeff");
} else if (!oneoff.contains("Jeff")) {
    System.out.println("it is not jeff");
}

我认为你应该改进你的代码,因为java可能没有识别其他字符串,如果包含在其他" jeff"也许" JEef"或者" JEEF"甚至可能" Jeef"

我希望它有效,我曾经发现像你一样的错误,我试着这样克服它。