diff --git a/src/models/europython.py b/src/models/europython.py index 8731ec0..689200b 100644 --- a/src/models/europython.py +++ b/src/models/europython.py @@ -156,7 +156,7 @@ def extract_linkedin_url(text: str) -> str | None: linkedin_url = f"https://{cleaned}" if not re.match( - r"^https://([\w-]+\.)?linkedin\.com/in/(?:[\w\-]|%[0-9A-Fa-f]{2})+$", + r"^https://([\w-]+\.)?linkedin\.com/in/(?:[\w\-]|%[0-9A-Fa-f]{2})+(?:/[\w\-]+)*$", linkedin_url, ): print(f"Invalid LinkedIn URL: {linkedin_url}") diff --git a/tests/test_extract_socials.py b/tests/test_extract_socials.py index 6eb27a0..f273182 100644 --- a/tests/test_extract_socials.py +++ b/tests/test_extract_socials.py @@ -50,6 +50,11 @@ def test_extract_mastodon_url(input_string, result): "https://regional.linkedin.com/in/example", "https://regional.linkedin.com/in/example", ), + ("in/user123/nl", "https://linkedin.com/in/user123/nl"), + ( + "https://nl.linkedin.com/in/user123/en", + "https://nl.linkedin.com/in/user123/en", + ), ], ) def test_extract_linkedin_url(input_string, result):