在Perl/PHP正则表达式是有可能与匹配的序列匹配的序列,并得到一个数组:Java的正则表达式:获取匹配序列
preg_match('/20[0-1][0-9]/', $inputstring, $array_return); // PHP
我无法弄清楚如何在Java中做到这一点。 match.group()
返回整个字符串。
这是不可能的吗?
在Perl/PHP正则表达式是有可能与匹配的序列匹配的序列,并得到一个数组:Java的正则表达式:获取匹配序列
preg_match('/20[0-1][0-9]/', $inputstring, $array_return); // PHP
我无法弄清楚如何在Java中做到这一点。 match.group()
返回整个字符串。
这是不可能的吗?
如果你只想要回比赛的一部分,使用捕获括号。
例如,仅在今年得到了一个MM/DD/YYYY日期的,你想要的正则表达式是
\d{2}/\d{2}/(\d{4})
我不知道在Java中这样做(你可能需要的细节例如逃避一些人物),但只知道你应该寻找“捕捉团体”应该是有用的。
你可以做的是类似下面的东西:
Pattern p = Pattern.compile("\\w"); // Replace "\\w" with your pattern
String str = "Some String To Match";
Matcher m = p.matcher(str);
List<String> matches = new ArrayList<String>();
while(m.find()){
matches.add(m.group());
}
在此之后,matches
将包含匹配的图案中的每个子。
在这种情况下,它只是每个字母,不包括空格。
如果你想打开一个List<String>
成String[]
只需使用:
String[] matchArr = matches.toArray(new String[matches.size()]);