在第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从字符串中提取每个单词
- 检查给定的字符串是否为有效数字(整数或浮点数)
- 使用正则表达式打印字符串中每个单词的第一个字母