diff --git a/src/client_server/alias.rs b/src/client_server/alias.rs
index a2ca0c8264808f4ab2aa23325f33b5085859d8bc..a54bd36d89834cf191316086f120c40975f42a4f 100644
--- a/src/client_server/alias.rs
+++ b/src/client_server/alias.rs
@@ -97,12 +97,7 @@ pub async fn get_alias_helper(
                     .map_or_else(Vec::new, |aliases| {
                         aliases
                             .iter()
-                            .filter_map(|aliases| {
-                                aliases
-                                    .get("regex")
-                                    .and_then(|regex| regex.as_str())
-                                    .and_then(|regex| Regex::new(regex).ok())
-                            })
+                            .filter_map(|aliases| Regex::new(aliases.get("regex")?.as_str()?).ok())
                             .collect::<Vec<_>>()
                     });
 
diff --git a/src/database/rooms.rs b/src/database/rooms.rs
index 9e1245f2453fa34ffbc1be33b1140b0ac420b91d..7bb019e5d225fa22210695bf8a7e535ab0790a59 100644
--- a/src/database/rooms.rs
+++ b/src/database/rooms.rs
@@ -1361,12 +1361,7 @@ pub fn build_and_append_pdu(
                     .map_or_else(Vec::new, |users| {
                         users
                             .iter()
-                            .filter_map(|users| {
-                                users
-                                    .get("regex")
-                                    .and_then(|regex| regex.as_str())
-                                    .and_then(|regex| Regex::new(regex).ok())
-                            })
+                            .filter_map(|users| Regex::new(users.get("regex")?.as_str()?).ok())
                             .collect::<Vec<_>>()
                     });
                 let aliases = namespaces
@@ -1375,12 +1370,7 @@ pub fn build_and_append_pdu(
                     .map_or_else(Vec::new, |aliases| {
                         aliases
                             .iter()
-                            .filter_map(|aliases| {
-                                aliases
-                                    .get("regex")
-                                    .and_then(|regex| regex.as_str())
-                                    .and_then(|regex| Regex::new(regex).ok())
-                            })
+                            .filter_map(|aliases| Regex::new(aliases.get("regex")?.as_str()?).ok())
                             .collect::<Vec<_>>()
                     });
                 let rooms = namespaces
diff --git a/src/server_server.rs b/src/server_server.rs
index f34633ac12e1767e0831686c57879936a8e2a3fe..6d074ec637857866dce173a4fc43bdd10c955411 100644
--- a/src/server_server.rs
+++ b/src/server_server.rs
@@ -1691,12 +1691,7 @@ pub(crate) fn append_incoming_pdu(
                 .map_or_else(Vec::new, |users| {
                     users
                         .iter()
-                        .filter_map(|users| {
-                            users
-                                .get("regex")
-                                .and_then(|regex| regex.as_str())
-                                .and_then(|regex| Regex::new(regex).ok())
-                        })
+                        .filter_map(|users| Regex::new(users.get("regex")?.as_str()?).ok())
                         .collect::<Vec<_>>()
                 });
             let aliases = namespaces