[英]Java regex: Get the matched sequence
在Perl / PHP中,正則表達式可以匹配序列並獲得具有匹配序列的數組:
preg_match('/20[0-1][0-9]/', $inputstring, $array_return); // PHP
我不知道如何在Java中執行此操作。 match.group()
返回整個字符串。
這不可能嗎?
您可以執行以下操作:
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()]);
如果只想返回部分匹配項,請使用捕獲括號。
例如,要僅獲取MM / DD / YYYY日期中的年份,則所需的正則表達式為
\d{2}/\d{2}/(\d{4})
我不知道在Java中執行此操作的具體細節(例如,您可能需要轉義一些字符),但只是知道應該尋找“捕獲組”即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.