检查一行中的字符串出现次数

时间:2015-07-13 05:53:44

标签: java regex string

我在java中有一行String,如下所示 深渊峰值是4000 有没有什么方法可以检查行中字符串文字的出现,比如检查深度消隐 daap peek 等模式

2 个答案:

答案 0 :(得分:0)

^.*?(?:\bdeep daap\b)|(?:\bdaap peek\b).*$

你可以尝试一下。参见演示。

https://regex101.com/r/hR7tH4/14

答案 1 :(得分:0)

您可以通过以下两种方式查看:

使用contains

非正则表达方式(如果您不搜索整个单词):

String str = "deep daap daap peek is 4000";
System.out.println("Contains: " + (str.contains("deep") && str.contains("daap")));

正则表达方式(如果 正在搜索整个单词)

String rx = "^(?=.*\\bdeep\\b)(?=.*\\bdaap\\b)";
Pattern ptrn = Pattern.compile(rx);
Matcher m = ptrn.matcher(str);
if (m.find()) {
    System.out.println("Regex: true");
}

请参阅IDEONE demo

使用2个锚定前瞻(?=.*\\bdeep\\b)(?=.*\\bdaap\\b)检查整个单词的存在:每个检查在任意数量的字符后是否存在整个单词(由于\b)(添加{{1}如果您的输入中有换行符号,则在模式开始处)。检查在字符串的开头就完成了。正则表达式需要这两个单词。