diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 2b8c367bb76624f4c6549ed18edaf1eb45562756..a432f4ae62aa6110f6e49e9dc11ec64c2c01d277 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -9,6 +9,12 @@ and this project adheres to `Semantic Versioning`_.
 Unreleased
 ----------
 
+Added
+~~~~~
+
+* If activated, imports with regex field types will show error messages
+  when there is no match.
+
 `2.3`_ - 2022-06-25
 -------------------
 
diff --git a/aleksis/apps/csv_import/field_types.py b/aleksis/apps/csv_import/field_types.py
index b7d00f393bf0bb7f399cd1f657aaad85729e3696..07c3a8909736114bd8cdf5321ac8c153600a618e 100644
--- a/aleksis/apps/csv_import/field_types.py
+++ b/aleksis/apps/csv_import/field_types.py
@@ -144,16 +144,26 @@ class RegExFieldType(ProcessFieldType):
 
     data_type = str
     reg_ex: str = ""
+    fail_if_no_match: bool = False
 
     def get_reg_ex(self):
         return self.reg_ex or self.get_args().get("reg_ex", "")
 
+    def get_fail_if_no_match(self):
+        return self.fail_if_no_match or self.get_args().get("fail_if_no_match", False)
+
     def process(self, instance: Model, value):
         match = re.fullmatch(self.get_reg_ex(), value)
         if match:
             for key, item in match.groupdict().items():
                 setattr(instance, key, item)
             instance.save()
+        elif self.get_fail_if_no_match():
+            raise IndexError(
+                _("No match on {} for regular expression {} found.").format(
+                    value, self.get_reg_ex()
+                )
+            )
 
 
 @field_type_registry.register