Python匹配首尾相同的内容

Python匹配首尾相同的内容

作者:Joshua Lee发布时间:2026-03-28 19:16阅读时长:10 分钟阅读次数:3
常见问答
Q
如何用Python判断字符串的首尾是否相同?

我想判断一个字符串的第一个字符和最后一个字符是否相同,有没有简单的Python方法实现?

A

使用索引比较字符串首尾字符

可以直接通过字符串索引访问首字符和尾字符,然后比较它们是否相同。示例如下:

s = "example"
if s[0] == s[-1]:
    print("首尾字符相同")
else:
    print("首尾字符不同")
Q
怎样使用正则表达式匹配首尾相同的字符串?

我想利用Python的正则表达式来匹配字符串中首尾字符相同的情况,应该如何书写正则表达式?

A

Python正则表达式匹配首尾相同字符的写法

可以用分组在正则表达式中捕获第一个字符,然后在末尾使用反向引用。示例如下:

import re
pattern = r"^(.)\1$"  # 这里只匹配单字符首尾相同
# 如果匹配多字符字符串首尾相同,可以用:
pattern = r"^(.)[\s\S]*\1$"

s = "abcda"
if re.match(pattern, s):
    print("首尾相同")
else:
    print("首尾不同")
Q
Python如何匹配字符串首尾相同的多个字符?

我想匹配字符串开头和结尾连续出现的同一段字符,能用Python正则表达式实现吗?

A

用正则表达式捕获并匹配首尾连续字符段

可以在正则表达式中用分组捕获开头的字符序列,然后利用反向引用确保结尾处相同的字符序列出现。示例如下:

import re
pattern = r"^(\w+)\1$"  # 匹配完全重复的字符串

# 如果只需要首尾部分相同,可以自定义表达式
pattern = r"^(\w+)\w*\1$"

s = "abcxyzabc"
if re.match(pattern, s):
    print("首尾有相同字符段")
else:
    print("首尾字符段不同")