📅  最后修改于: 2023-12-03 15:24:50.548000             🧑  作者: Mango
在Python中,我们经常会遇到检查字符串是否以某个子字符串结尾的情况。这种情况可能出现在很多不同的场景中,比如:
下面介绍几种常用的方法来检查字符串是否以子字符串结尾。
第一种方法是将原始字符串切片以获得最后的N个字符,然后检查这个子字符串是否与待检查的子字符串相等。如果相等,则说明原始字符串确实以子字符串结尾。
以下是示例代码:
def check_string_end(original_string, suffix):
"""
使用字符串切片检查字符串是否以某个子字符串结尾
:param original_string: 原始字符串
:param suffix: 待检查的子字符串
:return: 布尔值True或False
"""
return original_string[-len(suffix):] == suffix
示例使用:
>>> original_string = "hello world"
>>> suffix = "world"
>>> check_string_end(original_string, suffix)
True
>>> suffix = "wo"
>>> check_string_end(original_string, suffix)
False
以上示例中,check_string_end函数分别检查original_string是否以suffix结尾,并返回一个布尔值True或False。
Python内置的字符串方法endswith()可以用来检查字符串是否以某个子字符串结尾。只需在原始字符串后跟一对括号,并将待检查的子字符串作为参数传递即可。
以下是示例代码:
def check_string_end(original_string, suffix):
"""
使用endswith()检查字符串是否以某个子字符串结尾
:param original_string: 原始字符串
:param suffix: 待检查的子字符串
:return: 布尔值True或False
"""
return original_string.endswith(suffix)
示例使用:
>>> original_string = "hello world"
>>> suffix = "world"
>>> check_string_end(original_string, suffix)
True
>>> suffix = "wo"
>>> check_string_end(original_string, suffix)
False
以上示例中,check_string_end函数分别检查original_string是否以suffix结尾,并返回一个布尔值True或False。
Python的标准库中也包含了一个非常强大的正则表达式引擎,即re模块。利用re的search()方法,可以通过正则表达式来检查字符串是否以某个子字符串结尾。
以下是示例代码:
import re
def check_string_end(original_string, suffix):
"""
使用正则表达式检查字符串是否以某个子字符串结尾
:param original_string: 原始字符串
:param suffix: 待检查的子字符串
:return: 布尔值True或False
"""
pattern = re.compile(suffix + "$")
return pattern.search(original_string) is not None
示例使用:
>>> original_string = "hello world"
>>> suffix = "world"
>>> check_string_end(original_string, suffix)
True
>>> suffix = "wo"
>>> check_string_end(original_string, suffix)
False
以上示例中,check_string_end函数分别检查original_string是否以suffix结尾,并返回一个布尔值True或False。
这三种方法都可以用来检查字符串是否以子字符串结尾。在实际编程中,可以根据实际需求选择最合适的方法。