Python - 检查字符串是否以相同的字符开头和结尾(使用正则表达式)
给定一个字符串。任务是编写一个正则表达式来检查一个字符串是否以相同的字符开头和结尾。
例子:
Input :
abba
Output :
Valid
Input :
a
Output :
Valid
Input :
abc
Output :
Invalid
解决方案:
输入可以分为2种情况:
- 单字符:所有单字符都满足字符字符串和结尾的条件。只有 1 个字符的字符串的正则表达式将是 -
'^[a-z]$'
- 多字符:这里我们需要检查第一个和最后一个字符是否相同。我们使用 \1 来做到这一点。正则表达式将是 -
'^([a-z]).*\1$'
这两个正则表达式可以使用 | 组合。
'^[a-z]$|^([a-z]).*\1$'
在这个程序中,我们将使用 re 模块的 search() 方法。
下面是实现。
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)
输出 :
Valid
Valid
Invalid