Java 群组匹配 pattern

本文介绍了一个Java程序,该程序使用正则表达式进行群组匹配,并演示了如何从输入字符串中提取特定格式的时间(例如11:60am)。通过模式(.*):(.*)([ap])m,程序能够识别并输出各部分(小时、分钟和上午/下午标识符)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本函数可以进行群组匹配,群组的概念这里不进行详细描述,举个简单的例子,假设你的输入模式为(.*):(.*)([ap])m,输入字符串为11:60am,那么群组输出为(对应着括号内部的内容,这里的括号不是常规的括号,是这里的特殊标记,如果要表达括号得加上转义字符"\\("或“\\)”,注意英文符号和中文符号是不一样的)

 

11

60

a

 

import java.util.*;

import java.util.regex.*;

 

 

public class test

{

   public static void main(String[] args)

   {

      Scanner in = new Scanner(System.in);

 

 String patternString="(.*):(.*)([ap])m";//这里用户可以随意更改

      Pattern pattern = null;

      try

      {

         pattern = Pattern.compile(patternString);

      }

      catch (PatternSyntaxException e)

      {

         System.out.println("Pattern syntax error");

         System.exit(1);

      }

 

      while (true)

      {

         System.out.println("Enter string to match: ");

         String input = in.nextLine();        

 

         if (input == null || input.equals("")) return;

         Matcher matcher = pattern.matcher(input);

         if (matcher.matches())

         {

            System.out.println("Match");

            int g = matcher.groupCount();

            if (g > 0)

            {

             for(int i=1;i<=g;i++)

             System.out.println(matcher.group(i));

 

            }

         }

         else

            System.out.println("No match");

      }

   }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值