java - 正则表达式: the string must contains sequence of words

标签 java

我有这样的代码:

        String regexp = "[\\w\\W]*(London)[\\w\\W]*(Paris)[\\w\\W]*";

        String test1 = "London Paris";
        boolean t1 =  Pattern.matches(regexp, test1);
        System.out.println(t1);

        String test2 = "London to Paris";
        boolean t2 =  Pattern.matches(regexp, test2);
        System.out.println(t2);

        String test3 = "from London to Paris";
        boolean t3 =  Pattern.matches(regexp, test3);
        System.out.println(t3);

        String test4 = "from (London) -> (Paris)";
        boolean t4 =  Pattern.matches(regexp, test4);
        System.out.println(t4);

我需要所有 boolean 值都为真。现在,这个条件已经满足,但在我看来,正则表达式不太有效。我该如何改变这个?

最佳答案

您可以使用比正则表达式更快的东西:

public static boolean isValid(String str) {
        int indexOfLondon = str.indexOf("London");
        int indexOfParis = str.indexOf("Paris");

        return indexOfLondon != -1 && indexOfParis != -1 && indexOfLondon < indexOfParis 
    }

这里可以避免正则表达式。

关于java - 正则表达式: the string must contains sequence of words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60298009/

相关文章:

java - 发生重新哈希时,存储桶的索引是否会发生变化?

java - 如何使用 Spark Cassandra 连接器插入 TimeUUID 和 TimeStamp?

Java通过多种方法打印到文件并附加文本

java - 访问spring admin时出现404

java - 在 Xtend 循环中使用唯一的变量名称(代码生成)

java - 如何在 Java 中对部分编码文本进行 URLEncode?

java - 使用 Guice 使用属性连接库对象

java - 简化 Selenium 中的复杂 XPath 表达式

java - 将文本的第二行与下一页的第一行进行比较

java - 我们可以将作为 jenkins 管道一部分创建的 aritfacts (.jar/.zip) 上传到 Azure Devops 吗?