Java - 使用正则表达式提取字符串
我有这个字符串
String myString ="A~BC~FGH~~zuzy|XX~ 1234~ ~~ABC~01/01/2010 06:30~BCD~01/01/2011 07:45";
我需要提取这3个子字符串
1234
06:30
07:45
如果我使用此正则表达式\\d{2}\:\\d{2}我只能提取第一个小时06:30
Pattern depArrHours = Pattern.compile("\\d{2}\\:\\d{2}");
Matcher matcher = depArrHours.matcher(myString);
String firstHour = matcher.group(0);
String secondHour = matcher.group(1); (IndexOutOfBoundException no Group 1)
matcher.group(1) 引发异常。
我也不知道如何提取1234。这个字符串可以改变,但它总是在'XX〜'
之后,你对如何将这些字符串与正则表达式匹配有任何想法吗?
更新
感谢亚当的建议,我现在有这个正则表达式匹配我的字符串
Pattern p = Pattern.compile(".*XX~ (\\d{3,4}).*(\\d{1,2}:\\d{2}).*(\\d{1,2}:\\d{2})";
我匹配数字,并与 matcher.group(1) 匹配 2 小时;matcher.group(2);matcher.group(3);