diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/ChapterRecognition.java b/app/src/main/java/eu/kanade/tachiyomi/util/ChapterRecognition.java index 287c288edc..26d505f699 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/ChapterRecognition.java +++ b/app/src/main/java/eu/kanade/tachiyomi/util/ChapterRecognition.java @@ -15,7 +15,7 @@ public class ChapterRecognition { private static final Pattern p3 = Pattern.compile("(\\d+[\\.,]?\\d*\\s*:)"); private static final Pattern pUnwanted = - Pattern.compile("\\b(v|ver|vol|version|volume)\\.?\\s*\\d+\\b"); + Pattern.compile("(\\b|\\d)(v|ver|vol|version|volume)\\.?\\s*\\d+\\b"); public static void parseChapterNumber(Chapter chapter, Manga manga) { if (chapter.chapter_number != -1) @@ -32,7 +32,7 @@ public class ChapterRecognition { } // Remove anything related to the volume or version - name = pUnwanted.matcher(name).replaceAll(""); + name = pUnwanted.matcher(name).replaceAll("$1"); List occurrences; diff --git a/app/src/test/java/eu/kanade/tachiyomi/ChapterRecognitionTest.java b/app/src/test/java/eu/kanade/tachiyomi/ChapterRecognitionTest.java index 8ff1b06d7c..8626d8bb60 100644 --- a/app/src/test/java/eu/kanade/tachiyomi/ChapterRecognitionTest.java +++ b/app/src/test/java/eu/kanade/tachiyomi/ChapterRecognitionTest.java @@ -135,4 +135,10 @@ public class ChapterRecognitionTest { assertThat(c.chapter_number).isEqualTo(28f); } + @Test + public void testWithVolumeAttachedToChapter() { + Chapter c = createChapter("Ansatsu Kyoushitsu 011v002: Assembly Time"); + ChapterRecognition.parseChapterNumber(c, randomManga); + assertThat(c.chapter_number).isEqualTo(11f); + } }