📌  相关文章
📜  Python - 检查字符串是否以相同的字符开头和结尾(使用正则表达式)

📅  最后修改于: 2022-05-13 01:55:35.694000             🧑  作者: Mango

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