Dada una string. La tarea es escribir una expresión regular para verificar si una string comienza y termina con el mismo carácter.
Ejemplos:
Input : abba Output : Valid Input : a Output : Valid Input : abc Output : Invalid
Solución:
La entrada se puede dividir en 2 casos:
- String de un solo carácter: todas las strings de un solo carácter cumplen la condición de que comiencen y terminen con el mismo carácter. La expresión regular para una string con solo 1 carácter será-
'^[a-z]$'
- String de caracteres múltiples: aquí debemos verificar si el primer y el último carácter son iguales o no. Hacemos esto usando \1. La expresión regular será-
'^([a-z]).*\1$'
Las dos expresiones regulares se pueden combinar usando |
'^[a-z]$|^([a-z]).*\1$'
En este programa, utilizaremos el método search() del módulo re.
A continuación se muestra la implementación.
Python3
# Python program to check if a string starts # and ends with the same character # import re module as it provides # support for regular expressions import re # the regular expression regex = r'^[a-z]$|^([a-z]).*\1$' # function for checking the string def check(string): # pass the regular expression # and the string in the search() method if(re.search(regex, string)): print("Valid") else: print("Invalid") if __name__ == '__main__' : sample1 = "abba" sample2 = "a" sample3 = "abcd" check(sample1) check(sample2) check(sample3)
Producción :
Valid Valid Invalid