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

时间:2015-07-13 10:18:03

标签: java regex regex-group

我有一个提到的服务期

MAY 01-15

我需要提取开始和结束日期为

group 1 : MAY 01
group 2 : MAY 15

有可能???

2 个答案:

答案 0 :(得分:0)

有可能。

此表达式

@(Jan|Feb|May) (\d{1,2})-(\d{1,2})@is

为您提供以下数组

Array
(
    [0] => May 01-15
    [1] => May
    [2] => 01
    [3] => 15
)

您应该使用您需要/想要的所有月份展开第一个括号。

答案 1 :(得分:0)

如何使用Java - String replaceAll() Method?假设您的输入就像样本一样。

  

String str =" MAY 01-15&#34 ;;

String start = str.replaceAll("-\\d+$", "");
System.out.println(start);
  

MAY 01

String end = str.replaceAll("\\b\\d+-", "");
System.out.println(end);
  

5月15日

test at ideone.com;正则表达式test at regexplanet(点击" Java")

另见SO regex faq

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

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");

Explanation at regex101(右上角)