当前位置: 首页 > 知识库问答 >
问题:

如何在Python中删除某些字符前的所有内容

洪楷
2023-03-14

我是python的新手,正在为一个特定的任务而苦苦挣扎:

我有一个字符串,它可以包含任何东西,但它总是“结束”相同的。它可以只是一个文件名,一个完整的路径,或者只是一个随机字符串,以一个版本号结尾。

示例:

C:\Users\abc\Desktop\string-anotherstring-15.1R7-S8.1
string-anotherstring-15.1R7-S8.1
string-anotherstring.andanother-15.1R7-S8.1

什么总是相同的(从结尾看)是,如果你到达第二个点,在它前面走2个字符,你总是匹配的部分,我感兴趣。在某个字符串之后剪切所有东西是“容易的”,我自己解决了它--这就是为什么字符串以现在的版本结尾的原因:)

有没有一种方法告诉python,“从字符串后面找第二个点,在它前面加2,删除前面的所有内容,这样我就可以得到字符串形式的版本了?

为任何正确方向的指示感到高兴。

谢谢

共有2个答案

阎乐池
2023-03-14

如果你想要版本号,你能用连字符(-)拆分字符串吗?还是只需要依赖点?

请参阅下面使用rsplit和join,这可以帮助您。

>>> a = 'string-anotherstring.andanother-15.1R7-S8.1'
>>> a.rsplit('-')
['string', 'anotherstring.andanother', '15.1R7', 'S8.1']
>>> a.rsplit('-')[-2:] #Get everything from second last to the end
['15.1R7', 'S8.1']
>>> '-'.join(a.rsplit('-')[-2:]) #Get everything from second last to the end, and join them with a hyphen
'15.1R7-S8.1'
>>> 

对于使用点,请使用相同的方法

>>> a
'string-anotherstring.andanother-15.1R7-S8.1'
>>> data = a.rsplit('.')
>>> [data[-3][-2:]]
['15']
>>> [data[-3][-2:]] + data[-2:]
['15', '1R7-S8', '1']
>>> '.'.join([data[-3][-2:]] + data[-2:])
'15.1R7-S8.1'
>>> 
汲永嘉
2023-03-14

假设我正确理解了这一点,我想到的有两种方法:

包括两者,因为我可能不能正确理解这一点,而且出于完整性的原因。我认为分割/部分解决方案更干净,特别是当‘特定字符’是一个点。

>>> msg = r'C:\Users\abc\Desktop\string-anotherstring-15.1R7-S8.1'

>>> re.search(r'.*(..\..*)', msg).group(1)
'S8.1'

>>> parts = msg.split('.')
>>> ".".join((parts[-2][-2:], parts[-1]))
'S8.1'
 类似资料:
  • 我应该编写一个函数,排除句子(字符串)中的某些字母(char)。我基本上也这么做了,但问题是我只剪掉了这个字母在句子中的第一次出现。 我需要如何更改最后一个函数以删除字母的所有外观?找到所有索引可能并不难,但真正的困难是之后将子字符串放在一起,这样您仍然只剩下一句话,而没有某些字母。因为如果我理解正确,索引越多,您需要添加的不同子字符串就越多。 目前我得到了这个。 我们的目标是:

  • 问题内容: 有什么方法可以删除某个角色之后的所有内容,或者只是选择该角色之前的所有内容?我从href到“?”都得到了值,并且总是会有不同数量的字符。 像这样 我只希望href是,所以我想删除“?”之后的所有内容。 我现在正在使用这个: 问题答案: 我还应该提到,本机字符串函数比正则表达式快得多,后者仅应在必要时才使用(这不是其中一种情况)。 更新代码以不添加“?”:

  • 问题内容: 我想删除指定字符或一组字符之前的所有字符(例如): 现在,我想删除以前的(或更具体地说是)。有什么建议? 问题答案: 使用。只需匹配所有字符,然后将匹配的字符替换为。

  • 问题内容: 我对此感兴趣 ,它将在给定的$ string中搜索$ char1和$ char2,如果找到了该字符串,则从这两个字符之间的子字符串中清除$ string, 包括 $ char1和$ char2本身。 例: 现在,$ string应该只包含 有人有快速解决方案吗? 问题答案:

  • 问题内容: 我正在考虑使用删除字符串中的某些字符。目前尚不清楚将要删除哪些字符(即我想删除哪些字符),但是我会假定任何字符都是有效的(例如和之类的东西,等等)。 我遇到了http://www.java-tips.org/java-se-tips/java.lang/strip-certain-characters- from-a-string.html, 但是肯定有比遍历每个字符更好的方法… 有什

  • 我正在经历一个练习,需要在从文件中删除所有元音后从文件中输出文本。例如,包含文本“计算理论”的文件应输出“Thry f Cmpttn”。 我尝试构建一个函数“removeVowel元音(ifsream 我希望在控制台中输出不带元音的字符串,但程序在不输出字符串的情况下终止。