gpt4 book ai didi

Java 模式包含数组中的所有字符串

转载 作者:行者123 更新时间:2023-12-01 22:30:04 25 4
gpt4 key购买 nike

我想检查一个长字符串是否包含多个字符串。

我正在尝试使用以下命令。

          String[] words = {"GAGGAG", "AGGAC"};
Pattern pattern = Pattern.compile("GAGGAG|AGGAC");
if(pattern.matcher("GAGGAGGTC").find()){
System.out.println("find");
}else{
System.out.println("Not find");
}

结果应该是找不到因为“GAGGAGGGTC”包含“GAGGAG”但不包含“AGGAC”

如何将选项从“或”改为“和”

还有一个选择。

          String[] words = {"GAGGAG", "AGGAC"};
Pattern pattern = Pattern.compile("GAGGAG|AGGAC");
if(pattern.matcher("GAGGAGGAC").find()){
System.out.println("find");
}else{
System.out.println("Not find");
}

这也应该显示“未找到”。因为不允许有重叠部分。“GAGGAG”和“AGGAC”与“GAGGAGGAAC”中的“AG”部分重叠

最佳答案

您必须需要使用alternation运算符|,如下所示。

Pattern.compile("GAGGAG.*AGGAC|AGGAC.*GAGGAG");

说明:

  • GAGGAG.*AGGAC 匹配 GAGGAG 加上 .* 中间出现的任何字符,并且必须有一个 AGGAC 子字符串。

  • | OR 运算符,以便匹配任何顺序。

  • AGGAC 匹配 AGGAC 、 .* 零个或多个字符以及 GAGGAG 字符串。

示例 1:

  Pattern pattern = Pattern.compile("GAGGAG.*AGGAC|AGGAC.*GAGGAG");
if(pattern.matcher("GAGGAGGAC").find()){
System.out.println("find");
}else{
System.out.println("Not find");
} // Output: Not find

示例2:

Pattern pattern = Pattern.compile("GAGGAG.*AGGAC|AGGAC.*GAGGAG");
if(pattern.matcher("GAGGAGAGGAC").find()){
System.out.println("find");
}else{
System.out.println("Not find");
}
} // Output: find

示例3:

Pattern pattern = Pattern.compile("GAGGAG.*AGGAC|AGGAC.*GAGGAG");
if(pattern.matcher("AGGACFOOGAGGAG").find()){
System.out.println("find");
}else{
System.out.println("Not find");
} // Output: find

关于Java 模式包含数组中的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com