簡體   English   中英

Java正則表達式:獲取匹配的序列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM