当前位置: 首页 > 编程笔记 >

计算Java正则表达式的组数

熊俊人
2023-03-14
本文向大家介绍计算Java正则表达式的组数,包括了计算Java正则表达式的组数的使用技巧和注意事项,需要的朋友参考一下

通过将多个字符捕获为一组,可以将多个字符视为一个单元。您只需要将这些字符放在一组括号内即可。

您可以使用Matcher类的groupCount()方法计算当前匹配项中的组数。此方法计算当前匹配项中的捕获组数并返回。

示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String[] args) {
      String str1 = "<p>This <b>is</b> an <b>example</b> HTML <b>script</b> where <b>ever</b> alternative <b>word</b> is <b>bold</b></p>.";
      //正则表达式以匹配粗体标签的内容
      String regex = "(t(\\S+)t)(\\s)";
      String str = "the words tit tat tweet tostff tact that tilt text. start and end with the letter       t    ";
      //创建一个模式对象
      Pattern pattern = Pattern.compile(regex);
      //匹配字符串中的已编译模式
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println(matcher.group(0));
      }
      System.out.println("Total capturing groups: "+matcher.groupCount());
   }
}

输出结果

tit
tat
tweet
tact
that
tilt
text
tart
Total capturing groups: 3
 类似资料:
  • 问题内容: 我正在尝试编写一个正则表达式来检查给定的字符串是否像a + b,2 + a + b,3 + 6 * 9 + 6 * 5 + a * b等… 仅+和*运算符。 我试过了 不幸的是,它仅处理3 * 7 …(数字*数字)之类的情况。 等待您的答案,感谢您的阅读。 问题答案: 把和字符类中。 演示

  • 问题内容: 假设我有一个文件,该文件包含以下内容: 我编译一个模式以查找“ Hello” 然后,我使用inputstream读取文件并将其转换为String,以便可以对其进行正则表达式处理。 匹配器在文件中找到匹配项后,就会进行指示,但不会告诉我找到了多少个匹配项。只是它在字符串中找到了一个匹配项。 因此,由于字符串相对较短,并且我正在使用的缓冲区为200个字节,因此它应该找到三个匹配项。但是,它

  • 我有3个正则表达式,但当模式匹配时执行相同的操作,所以我考虑将所有三个表达式合并为一个。我尝试了很多,但无法让“|”I.e”或“在我的正则表达式中工作 regex1:<代码>文本。替换(/([\u00A9-\u3299])/g,函数myFunction(x){…} regex2: regex3: 我试过这样做,但它不起作用regex:

  • 问题内容: 是否可以创建具有可变数量的组的正则表达式? 例如运行此之后… …我想要一些类似的东西 m.group(1) = “c” m.group(2) = “d” m.group(3) = “d” m.group(4)= “c”。 (背景:我正在解析一些数据行,“字段”之一正在重复。我想避免这些字段的循环。) 问题答案: 根据文档,Java正则表达式不能做到这一点: 与组关联的捕获输入始终是该组

  • 问题内容: 我正在尝试使用Java expr在:之后捕获正确的部分,但是在以下代码中,打印的捕获组是整个字符串,怎么了? 问题答案: 子组的编号从1开始,全文为0。只需循环执行count + 1。

  • 问题内容: 如何在Java Regex中定义重复组? 假设一个2位数[0-9] {2}多次用分隔, 这是可能的还是唯一的机会? 编辑:我想验证并提取。 问题答案: 最简单的方法是使用两步解决方案:1)首先,验证字符串,然后2)用您选择的定界符分割字符串: 在此,匹配以两位数字开头的整个字符串,然后匹配出现的0个或多个和结尾的两位数字,然后用逗号分割该字符串。注意你不需要和美女主播与图案内,因为该方