我有一个提到的服务期
MAY 01-15
我需要提取开始和结束日期为
group 1 : MAY 01
group 2 : MAY 15
有可能???
答案 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")
$
是结尾anchor \d
是[0-9]
+
quantifier一个或多个\b
匹配word boundary 如果样本只是片段,首先提取相关部分:
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");