首页 > 解决方案 > 如何使用正则表达式判断字符串的第一个字符和最后一个字符是否匹配?

问题描述

我对使用 Python 和 Regex 比较陌生,我想检查字符串的第一个字符和最后一个字符是否相同。

如果第一个和最后一个字符相同,则返回 'True'(例如:'aba') 如果第一个和最后一个字符不同,则返回 'False'(例如:'ab')

下面是我写的代码:

import re
string = 'aba'
pattern = re.compile(r'^/w./1w$')

matches = pattern.finditer(string)
for match in matches
   print (match)

但是从上面的代码中,我没有看到任何输出

标签: pythonregexstring

解决方案


当且仅当您真的想使用正则表达式(用于学习目的):

import re
string = 'aba'
string2 = 'no match'
pattern = re.compile(r'^(.).*\1$')

if re.match(pattern, string):
  print('ok')
else:
  print('nok')
if re.match(pattern, string2):
  print('ok')
else:
  print('nok')

输出:

ok
nok

说明:

^(.).*\1$
  • ^线锚的起点
  • (.)匹配该行的第一个字符并将其存储在一个组中
  • .*随时匹配任何字符
  • \1对第一组的反向引用,在这种情况下,第一个字符强加第一个字符和最后一个字符相等
  • $线锚的末端

演示:https ://regex101.com/r/DaOPEl/1/

否则最好的方法是简单地使用比较string[0] == string[-1]

string = 'aba'
if string[0] == string[-1]:
  print 'same'

输出:

same

推荐阅读