Java 使用正则表达式组提取开始和结束日期

Java 使用正则表达式组提取开始和结束日期,java,regex,regex-group,Java,Regex,Regex Group,我的服务期如下所述 MAY 01-15 我需要将开始和结束日期提取为 group 1 : MAY 01 group 2 : MAY 15 有可能吗?有可能 这句话 @(Jan|Feb|May) (\d{1,2})-(\d{1,2})@is 为您提供以下数组 Array ( [0] => May 01-15 [1] => May [2] => 01 [3] => 15 ) 您应该将第一个括号扩展为您需要/想要的所有月份。如何使用?假设

我的服务期如下所述

MAY 01-15
我需要将开始和结束日期提取为

group 1 : MAY 01
group 2 : MAY 15
有可能吗?

有可能

这句话

@(Jan|Feb|May) (\d{1,2})-(\d{1,2})@is
为您提供以下数组

Array
(
    [0] => May 01-15
    [1] => May
    [2] => 01
    [3] => 15
)
您应该将第一个括号扩展为您需要/想要的所有月份。

如何使用?假设您的输入类似于示例

String str=“5月1日至15日”

5月1日

5月15日

看;正则表达式(单击“Java”)

  • $
    结束了
  • \d
    [0-9]
  • +
    用于一个或多个
  • \b
也看到


如果样本只是一个片段,首先提取相关部分:

String full_str = "foo bar MAY 01-15 Lorem ipsum dolor sit amet, consetetur, adipisci velit";
String str = full_str.replaceAll("(?s)^.*?(\\b[A-Z]{3,}\\s+\\d{2}-\\d{2})(?!-).*", "$1");

(右上)

您使用的是哪种语言?java…但我的框架只允许有限的操作。我不能使用太多的核心java。您可以提供您解决问题的尝试吗?然后您需要将字符串分解为粒子并手动匹配这些粒子。
String end = str.replaceAll("\\b\\d+-", "");
System.out.println(end);
String full_str = "foo bar MAY 01-15 Lorem ipsum dolor sit amet, consetetur, adipisci velit";
String str = full_str.replaceAll("(?s)^.*?(\\b[A-Z]{3,}\\s+\\d{2}-\\d{2})(?!-).*", "$1");