python - 如何使用正则表达式判断字符串的第一个字符和最后一个字符是否匹配?
问题描述
我对使用 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)
但是从上面的代码中,我没有看到任何输出
解决方案
当且仅当您真的想使用正则表达式(用于学习目的):
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
推荐阅读
- sql - Postgresql:将uuid转换为int
- python - 安装后没有名为“tensorflow_examples”的模块
- reactjs - 在 shopify next js 应用程序中重新加载页面而不是路由
- angular - NgbModal 上的 ComponentInstace 未定义
- mysql - 如何显示记录数
- python - 如何在 XPath 中处理更改的 ID?例如 :
- php - Node js无法通过php从curl请求中读取数据
- mysql - 为什么在使用 go lang 执行 mysql DB 操作时,内部将 sql 转换为准备好的语句样式执行
- vb.net - 如何过滤包含列数据库中指定的所有单词的记录
- python - 如何利用字典计算数据框中的多个平均值