如何解决如何从字符串中删除最后一次出现的子字符串?
我有一个这样的字符串- “DEMO_ANNO_COUNT_ANNO_1” 和 “DEMO_ANNO_COUNT_ANNO_25”
我需要一个通用的方法来删除最后一个 _ANNO 以及后面的任何内容,以便我有 “DEMO_ANNO_COUNT” 在这两种情况下
解决方法
您可以使用 rsplit
从右侧分割字符串一次并检索结果的第一个元素:
In [1]: "DEMO_ANNO_COUNT_ANNO_1".rsplit("_ANNO",1)[0]
Out[1]: 'DEMO_ANNO_COUNT'
In [2]: "DEMO_ANNO_COUNT_ANNO_25".rsplit("_ANNO",1)[0]
Out[2]: 'DEMO_ANNO_COUNT'
In [3]: "DEMO_ANNO_COUNT_ANNO_25".rsplit("_ANNO",1)
Out[3]: ['DEMO_ANNO_COUNT','_25']
# The first element of that will always be
# whatever was before the last "_ANNO"
,
与我的评论相同,但使用 Python 代码 我正在反转字符串。找到反转模式的索引,然后取原始字符串的切片,直到 len(ONNA_)+index 字符仍然存在
def remove_upto_last_pattern(word,pattern):
reversed_word = word[::-1]
pattern = pattern[::-1]
pattern_index = reversed_word.index(pattern)
return word[:-1*(pattern_index+len(pattern))]
if __name__ == '__main__':
print(remove_upto_last_pattern('DEMO_ANNO_COUNT_ANNO_1','_ANNO'))
print(remove_upto_last_pattern('DEMO_ANNO_COUNT_ANNO_25','_ANNO'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。