diff --git a/diceware/wordlist.py b/diceware/wordlist.py
index 4201fa8f61810c84af5e537bea39385a04210c07..f237c0500123aa28b6becc7ba20cc3cdb9bdce4f 100644
--- a/diceware/wordlist.py
+++ b/diceware/wordlist.py
@@ -42,13 +42,10 @@ def get_wordlist_names():
     for filename in filenames:
         if not os.path.isfile(os.path.join(WORDLISTS_DIR, filename)):
             continue
-        if "_" not in filename:
+        match = RE_VALID_WORDLIST_FILENAME.match(filename)
+        if not match:
             continue
-        if "." not in filename:
-            continue
-        basename = filename.split(".")[0]
-        name = basename.split("_", 1)[1]
-        result.append(name)
+        result.append(match.groups()[0])
     return sorted(result)