From 9137087fe53d06af9b0a51aaad0ed183c099a0b1 Mon Sep 17 00:00:00 2001 From: Sineth Sankalpa <66241389+sinsankio@users.noreply.github.com> Date: Thu, 27 Oct 2022 10:23:58 +0530 Subject: [PATCH 1/2] Add is_srilankan_phone_number.py --- strings/is_srilankan_phone_number.py | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 strings/is_srilankan_phone_number.py diff --git a/strings/is_srilankan_phone_number.py b/strings/is_srilankan_phone_number.py new file mode 100644 index 000000000000..7f1e131f74dc --- /dev/null +++ b/strings/is_srilankan_phone_number.py @@ -0,0 +1,29 @@ +import re + +def is_sri_lankan_phone_number(phone: str) -> bool: + """ + Determine whether the string is a valid sri lankan phone number or not + >>> is_sri_lankan_phone_number("+94475682163") + True + >>> is_sri_lankan_phone_number("+94773283048") + True + >>> is_sri_lankan_phone_number("0718382399") + True + >>> is_sri_lankan_phone_number("0094112343221") + True + >>> is_sri_lankan_phone_number("+94-3283048") + False + >>> is_sri_lankan_phone_number("07779209245") + False + >>> is_sri_lankan_phone_number("0957651234") + False + """ + + pattern = re.compile(r'^(?:0|94|\+94|0{2}94)?(?:(1{2}|21|23|24|25|26|27|31|32|3{2}|34|35|36|37|38|41|45|47|51|52|54|5{2}|57|63|65|6{2}|67|81|91)(0|2|3|4|5|7|9)|7(0|1|2|4|5|6|7|8)\d)\d{6}$') + + return bool(re.search(pattern, phone)) + +if __name__ == '__main__': + phone = "+94475682163" + + print(is_sri_lankan_phone_number(phone)) From 3c7fa226f85649822c860df605c1a23eeff94511 Mon Sep 17 00:00:00 2001 From: Sineth Sankalpa <66241389+sinsankio@users.noreply.github.com> Date: Thu, 27 Oct 2022 11:17:04 +0530 Subject: [PATCH 2/2] Update is_srilankan_phone_number.py --- strings/is_srilankan_phone_number.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/strings/is_srilankan_phone_number.py b/strings/is_srilankan_phone_number.py index 7f1e131f74dc..7bded93f7f1d 100644 --- a/strings/is_srilankan_phone_number.py +++ b/strings/is_srilankan_phone_number.py @@ -1,29 +1,35 @@ import re + def is_sri_lankan_phone_number(phone: str) -> bool: """ - Determine whether the string is a valid sri lankan phone number or not - >>> is_sri_lankan_phone_number("+94475682163") - True + Determine whether the string is a valid sri lankan mobile phone number or not + References: https://aye.sh/blog/sri-lankan-phone-number-regex + >>> is_sri_lankan_phone_number("+94773283048") True + >>> is_sri_lankan_phone_number("+9477-3283048") + True >>> is_sri_lankan_phone_number("0718382399") True - >>> is_sri_lankan_phone_number("0094112343221") + >>> is_sri_lankan_phone_number("0094702343221") + True + >>> is_sri_lankan_phone_number("075 3201568") True - >>> is_sri_lankan_phone_number("+94-3283048") - False >>> is_sri_lankan_phone_number("07779209245") False >>> is_sri_lankan_phone_number("0957651234") False """ - pattern = re.compile(r'^(?:0|94|\+94|0{2}94)?(?:(1{2}|21|23|24|25|26|27|31|32|3{2}|34|35|36|37|38|41|45|47|51|52|54|5{2}|57|63|65|6{2}|67|81|91)(0|2|3|4|5|7|9)|7(0|1|2|4|5|6|7|8)\d)\d{6}$') - + pattern = re.compile( + r"^(?:0|94|\+94|0{2}94)" r"7(0|1|2|4|5|6|7|8)" r"(-| |)" r"\d{7}$" + ) + return bool(re.search(pattern, phone)) -if __name__ == '__main__': - phone = "+94475682163" - print(is_sri_lankan_phone_number(phone)) +if __name__ == "__main__": + phone = "0094702343221" + + print(is_sri_lankan_phone_number(phone))