正则表达式以所有顺序查找字符串

红魔鬼

我有关于手机的推文列表和手机名称列表,现在我必须对每个手机名称进行计数。我使用数组列表来获取手机的名称,如下所示

brand_list.add("Samsung Galaxy S5");
brand_list.add("Nolia Lumia 525");

然后我收到了有关手机的推文列表,例如“ RT @protectyrbubble:#PYBS5giveaway #WIN赢得三星Galaxy S5。只需遵循@protectyrbubble和RT!详细信息和条款和条件http://t.co/u0NTM00rhA ht…”

然后我使用以下代码对每个电话进行计数,如下所示

for(int j=0;j<array_list.size();j++)
           {
              pattern = Pattern.compile(" ((.*)Samsung(.*)Galaxy(.*)S5(.*)",Pattern.CASE_INSENSITIVE) ;
                        matcher = pattern.matcher(array_list.get(j).toString());
                        while (matcher.find()) 
                        {

                              count++;

                        }
           }

在上面,array_list保存关于手机的推文。现在如果我使用上面的正则表达式,它对于上面提到的推文工作正常,但不适用于像这样的字符串

“ Galaxy S5 Mini已出现在三星网站http://t.co/sinWiLpUNV上

因此,我需要一个正则表达式也可以找到上述推文。

提前致谢

米歇尔·迈克·迈耶

您不能使用正则表达式检查订单。但似乎,如果你只是想知道,如果字符串"Samsung""Galaxy""S5"包含在字符串,所以你可以只问了3场比赛:".*Samsung.*"".*Galaxy.*"".*S5.*"

String#contains()方法也是可行的,但是不幸的是,它不能不区分大小写地进行检查。

编辑:它可能与类似的东西一起工作,"(.*(Samsung|Galaxy|S5))*.*"但是我不确定正确的语法...也许你明白我的想法。

如果您的电话名称在内brand_list,则可以执行以下操作:

for(int j=0;j<array_list.size();j++)
{
    boolean allIn = true;
    for (String phoneName: brand_list)
    {
        String[] phoneWords = phoneName.split(" ");

        for (int wordIndex = 0; wordIndex < phoneWords.length; wordIndex++)
        {
            String regexPattern = "(.*)" + phoneWords[wordIndex] + "(.*)";
            pattern = Pattern.compile(regexPattern, Pattern.CASE_INSENSITIVE);
            matcher = pattern.matcher(array_list.get(j).toString());

            if (!matcher.find()) 
            {
                allIn = false;
            }
        }
    }
    System.out.println(allIn); // should be false here if one of the words
                               // couldn't be found in the strings and
                               // should be true otherwise
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Javascript以任意顺序使用正则表达式查找字符串中的所有匹配项

用正则表达式查找字符串中的所有字母

使用正则表达式查找字符串中的所有匹配项

使用正则表达式查找字符串中的所有匹配项

通过正则表达式查找字符串中的所有电话号码

使用正则表达式查找字符串中不包含特定字母的所有单词

Python-正则表达式查找字符串中的所有匹配项并替换

查找字符串中的所有大写字母-正则表达式C#

PHP正则表达式:查找字符串中所有连续的数字序列吗?

使用Java正则表达式查找字符串中的所有<a href> link </a>

查找字符串c#中的所有子字符串(正则表达式,字符数组?)

正则表达式:在不同的字符串变体中查找字符串

PHP正则表达式-在字符串中查找字符串

给定超字符串正则表达式,查找字符串的值

查找所有字符串的正则表达式是在Java中以$开头的正则表达式

正则表达式-查找具有特定字符串的所有注释

正则表达式查找字符串并替换或添加基于条件的额外字符

使用正则表达式查找字符串中的确切字符

正则表达式查找字符串之间的串联字符

是否有一个正则表达式可以按顺序查找字符?

在 C# 中使用正则表达式查找字符串中的所有电子邮件地址

正则表达式:查找文本中的所有子字符串

正则表达式:查找特定字符串后的所有数字

需要正则表达式来查找特定模式的所有子字符串

正则表达式查找某些模式之间的所有字符串

使用正则表达式在字符串中查找所有出现的日期

Vim查找并替换所有出现的正则表达式字符串

查找与正则表达式golang匹配的所有字符串

正则表达式查找带引号的字符串中的所有大括号