📜  在给定的字符串找到“ 1(0+)1”的所有模式| SET 2(正则表达式方法)

📅  最后修改于: 2021-05-05 02:34:19             🧑  作者: Mango

在第1组中,我们讨论了用于计数形式为1(0+)1的模式的通用方法,其中(0+)表示0的任何非空连续序列。相同的。

例子:

Input : 1101001
Output : 2

Input : 100001abc101
Output : 2

以下是上述模式的正则表达式之一

10+1

因此,每当找到一个匹配项时,我们都会增加用于计数模式的计数器。由于匹配项的最后一个字符将始终为“1”,因此我们必须再次从该索引开始搜索。

//Java program to count the patterns 
// of the form 1(0+)1 using Regex
  
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
class GFG 
{
    static int patternCount(String str) 
    {
        // regular expression for the pattern
        String regex = "10+1";
          
        // compiling regex
        Pattern p = Pattern.compile(regex);
                  
        // Matcher object
        Matcher m = p.matcher(str);
          
        // counter
        int counter = 0;
                  
        // whenever match found
        // increment counter
        while(m.find())
        {
            // As last character of current match
            // is always one, starting match from that index
            m.region(m.end()-1, str.length());
              
            counter++;
        }
                  
        return counter;
    }
      
    // Driver Method
    public static void main (String[] args)
    {
        String str = "1001ab010abc01001";
        System.out.println(patternCount(str));
    }
}

输出:

2

相关文章 :

  • 正则表达式Java
  • 量词
  • 使用Regex从字符串中提取每个单词
  • 检查给定的字符串是否为有效数字(整数或浮点数)
  • 使用正则表达式打印字符串中每个单词的第一个字母