diff --git a/forge-core/src/main/java/forge/deck/DeckRecognizer.java b/forge-core/src/main/java/forge/deck/DeckRecognizer.java index 68e27bef163..239584dbad4 100644 --- a/forge-core/src/main/java/forge/deck/DeckRecognizer.java +++ b/forge-core/src/main/java/forge/deck/DeckRecognizer.java @@ -153,7 +153,7 @@ public class DeckRecognizer { // Core Matching Patterns (initialised in Constructor) public static final String REGRP_DECKNAME = "deckName"; public static final String REX_DECK_NAME = - String.format("^(//\\s*)?(?
(deck|name))(\\:|\\s)\\s*(?<%s>[a-zA-Z0-9',\\/\\-\\s]+)\\s*(.*)$",
+ String.format("^(//\\s*)?(?(deck|name))(\\:|=|\\s)\\s*(?<%s>[a-zA-Z0-9',\\/\\-\\s\\(\\)]+)\\s*(.*)$",
REGRP_DECKNAME);
public static final Pattern DECK_NAME_PATTERN = Pattern.compile(REX_DECK_NAME, Pattern.CASE_INSENSITIVE);
diff --git a/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java b/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java
index 94f7d5433bc..820f6954b5a 100644
--- a/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java
+++ b/forge-gui-desktop/src/test/java/forge/deck/DeckRecognizerTest.java
@@ -168,6 +168,14 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Red Green Aggro");
assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Red Green Aggro");
+ // Forge deck format
+ matchingDeckName = "Name=Sliver Overlord (Commander)";
+ deckNameMatcher = deckNamePattern.matcher(matchingDeckName);
+ assertTrue(deckNameMatcher.matches());
+ assertTrue(DeckRecognizer.isDeckName(matchingDeckName));
+ assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Sliver Overlord (Commander)");
+ assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Sliver Overlord (Commander)");
+
// Failing Cases
matchingDeckName = ":Red Green Aggro";
deckNameMatcher = deckNamePattern.matcher(matchingDeckName);