我正在尝试从列表中提取电影名称,如下所示:
The Maze Runner 2014 DVDRip XviD MP3-RARBG
Fury 2014 DVDSCR x264 AC3-Blackjesus
Dracula的不为人知的故事(WebRip / 2014)
我需要提取一年中的字词或特殊字符,例如(
或[
,但不是'
The Maze Runner 2014 DVDRip XviD MP3-RARBG ==>迷宫亚军
Fury 2014 DVDSCR x264 AC3-Blackjesus ==>怒
德古拉的不为人知的故事(WebRip / 2014)==德古拉的不为人知的故事
德古拉的不为人知的故事[WebRip / 2014] ==德古拉的不为人知的故事
我不知道如何继续写这样复杂的正则表达式。有什么想法吗?
答案 0 :(得分:2)
以下代码段有助于满足您的要求
public static String extractMovieName(String movieNameString){
Pattern pattern = Pattern.compile("([\\w' ]+)([\\[]|[\\(]|[\\d]{4})");
Matcher matcher = pattern.matcher(movieNameString);
String extractedName = "";
if(matcher.find()){
extractedName = matcher.group(1);
}
return extractedName;
}
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试以下代码:
示例:强>
System.out.println("Fury 2014 DVDSCR x264 AC3-Blackjesus".replaceAll("\\s(\\d|\\(|\\[).*", ""));