删除以特定char Python开头的字符串

时间:2016-11-17 02:34:16

标签: python-3.x

text='I miss Wonderland #feeling sad @omg'
prefix=('#','@')
for line in text:
   if line.startswith(prefix):
      text=text.replace(line,'')
 print(text)

输出应为:

'I miss Wonderland'

但我的输出是删除了前缀的原始字符串

2 个答案:

答案 0 :(得分:1)

所以看来你实际上并不想要删除整个“字符串”或“行”,而是单词?然后你要将你的字符串分成单词:

words = test.split(' ')  

现在遍历words中的每个元素,对第一个字母执行检查。最后,将这些元素组合成一个字符串:

result = ""
for word in words:
    if !word.startswith(prefix):
        result += (word + " ")

答案 1 :(得分:0)

在您的情况下,

"members/0"将迭代文本中的每个字符,而不是每个字。因此,当它for line in text中的'#'时,它将删除'#feeling',但#将保留,因为该字符串中的其他任何字符都不以/开头'feeling''#'。您可以通过执行以下操作确认您的代码是逐字逐句的:

'#'

请尝试以下方法,在一行中进行过滤:

for line in text:
    print(line)